2012-05-09 20 views
5


मैं google.maps.MapTypeId.HYBRID 21. वास्तव में, वह 14 के लिए सेट करने के लिए की maxZoom स्तर निर्धारित करने की आवश्यकता की अधिकतम ज़ूम स्तर को संशोधित (फ़ायरबग कंसोल के साथ निरीक्षण किया)।
एक गूगल मानचित्र प्रकार

google.maps वस्तु 'Maxzoom' की संपत्ति सेट इस मामले में काम नहीं करता है, और मैं पहले से ही google.maps.mapTypes वस्तु को संशोधित करने की कोशिश, लेकिन सफलता नहीं मिली।

var options = { 
    center: new google.maps.LatLng(lat_centre,lng_centre), 
    zoom: 14, 
    maxZoom: 21, 
    mapTypeId: google.maps.MapTypeId.TERRAIN, 
    panControl: true, 
    zoomControl: true, 
    mapTypeControl: false, 
    scaleControl: false, 
    streetViewControl: false, 
    overviewMapControl: false, 
    disableDoubleClickZoom: true, 
    styles: [ 
     {featureType: "poi", stylers: [{visibility: "off"}]} 
     ]     
    }; 

    map = new google.maps.Map(document.getElementById("map_container"),options); 

और

google.maps.event.addListener(map, 'tilesloaded', function(event){ 

    var mapTypeRegistry = map.mapTypes; 

    var currentMapTypeId = map.getMapTypeId(); 

    var mapType = mapTypeRegistry.get(currentMapTypeId); 

    mapType.maxZoom = 21; 
    }); 

तो, वहाँ mapType हाइब्रिड के ज़ूम स्तर को बढ़ाने के लिए एक तरीका है?

धन्यवाद।

+0

आप हमें कोड जब आप अधिकतम जूम – Jorge

+0

कोड के साथ संपादित स्थापित करने के लिए कोशिश कर रहे हैं दिखा सकता है! – jbrtrnd

उत्तर

7

यदि आप mapType वस्तु की संपत्ति (maxZoom, minZoom, आदि ...) बदल गया है, बदली हुई प्रभाव एक जगह केवल के बाद नक्शा के प्रकार है कि mapType में बदल जायेगा ले जाएगा। उदाहरण के लिए, यदि वर्तमान mapTypeTERRAIN है, और आप TERRAIN करने के लिए बदल ही अन्य प्रकार के mapType बदलने के बाद (जैसे ROADMAP, HYBRID, आदि ..) TERRAIN के maxZoom, maxZoom काम करेंगे और वापस।

इसके बजाय स्थापित करने mapType के maxZoom विकल्प, उपयोग कोर मानचित्र के maxZoom विकल्प की

"maptypeid_changed" घटना के लिए श्रोता जोड़ें, और जब घटना होती है, बदल map की maxZoom विकल्प:

google.maps.event.addListener(map, 'maptypeid_changed', function(event){ 
    if(map.getMapTypeId() === google.maps.MapTypeId.TERRAIN){ 
     map.setOptions({maxZoom:/*For example*/5}); 
    }else 
    if(map.getMapTypeId() === google.maps.MapTypeId.ROADMAP){ 
     map.setOptions({maxZoom:/*For example*/8}); 
    }//Etc... 
    else{ 
     map.setOptions({maxZoom:/*For example*/21}); 
    } 
}); 
+1

मैंने आपके समाधान और मेरे 'tilesloaded' ईवेंट को जोड़ा है। यह काम करता हैं ! धन्यवाद ! – jbrtrnd

+1

@ JBRTRND-DEV बेशक इसे 'tilesloaded' घटना के साथ काम करना चाहिए, लेकिन यह एक इष्टतम समाधान नहीं है। – Engineer

+0

google.maps.'Event' ऑब्जेक्ट को कैपिटल किया गया है –

संबंधित मुद्दे