2012-07-12 16 views
45

यहां वह कोड है जिसे मैंने अक्षांश और देशांतर प्रदान करके Google मानचित्र में मार्कर जोड़ने के लिए लिखा है। समस्या यह है कि मुझे बहुत ज़ूम किया गया Google मानचित्र मिलता है। मैंने ज़ूम स्तर को 1 पर सेट करने का प्रयास किया है लेकिन इसका अत्यधिक ज़ूम किए गए मानचित्र पर कोई प्रभाव नहीं पड़ता है।Google मानचित्र में ज़ूम स्तर कैसे सेट करें

<script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script> 
    <script type="text/javascript"> 
     var icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/blue.png",new google.maps.Size(32, 32), new google.maps.Point(0, 0),new google.maps.Point(16, 32)); 
     var center = null; 
     var map = null; 
     var currentPopup; 
     var bounds = new google.maps.LatLngBounds(); 
     function addMarker(lat, lng, info) { 
      var pt = new google.maps.LatLng(lat, lng); 
      bounds.extend(pt); 
      var marker = new google.maps.Marker({ 
       position: pt, 
       icon: icon, 
       map: map 
      }); 
      var popup = new google.maps.InfoWindow({ 
       content: info, 
       maxWidth: 300 
      }); 
      google.maps.event.addListener(marker, "click", function() { 
       if (currentPopup != null) { 
        currentPopup.close(); 
        currentPopup = null; 
       } 
       popup.open(map, marker); 
       currentPopup = popup; 
      }); 
      google.maps.event.addListener(popup, "closeclick", function() { 
       map.panTo(center); 
       currentPopup = null; 
      }); 
     } 
     function initMap() { 
      map = new google.maps.Map(document.getElementById("map"), { 
      center: new google.maps.LatLng(0, 0), 
      zoom: 1, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      mapTypeControl: false, 
      mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR 
      }, 
      navigationControl: true, 
      navigationControlOptions: { 
       style: google.maps.NavigationControlStyle.SMALL 
      } 
     }); 
     addMarker(27.703402,85.311668,'New Road'); 
     center = bounds.getCenter(); 
     map.fitBounds(bounds); 

     } 
</script> 
</head> 
<body onload="initMap()" style="margin:0px; border:0px; padding:0px;"> 
<div id="map"></div> 
</body> 
</html> 

मैं इस मामले के लिए ज़ूम के स्तर को कैसे कम कर सकता हूं?

उत्तर

82

आपका कोड के नीचे नक्शा जूमिंग है निर्दिष्ट सीमा फिट करने के लिए:

addMarker(27.703402,85.311668,'New Road'); 
center = bounds.getCenter(); 
map.fitBounds(bounds); 

आप तो केवल 1 मार्कर है और इसे सीमाओं में जोड़ें, जिसके परिणामस्वरूप निकटतम जूम संभव:

function addMarker(lat, lng, info) { 
    var pt = new google.maps.LatLng(lat, lng); 
    bounds.extend(pt); 
} 

आप मार्कर आप नक्शे के लिए "जोड़ा" है (या के साथ सीमा बढ़ाया गया) की संख्या का ट्रैक रखने, तो आप केवल fitBounds कॉल कर सकते हैं कि संख्या एक से अधिक है। मैं आमतौर पर मार्कर को सरणी में डालता हूं (बाद में उपयोग के लिए) और उस सरणी की लंबाई का परीक्षण करता हूं।

यदि आपके पास केवल एक मार्कर होगा, तो फिटबाउंड का उपयोग न करें। मार्कर स्थिति और वांछित ज़ूम स्तर के साथ setCenter, setZoom पर कॉल करें।

function addMarker(lat, lng, info) { 
    var pt = new google.maps.LatLng(lat, lng); 
    map.setCenter(pt); 
    map.setZoom(your desired zoom); 
} 
+1

मैं केवल एक ही है मार्कर, तो मैं कम करना चाहता हूँ ज़ूम स्तर के रूप में, क्या आप ऊपर दिए गए कोड को संशोधित करने में मेरी मदद कर सकते हैं? आपकी मदद के लिए धन्यवाद – rockstar

+0

ने एकल मार्कर मामले – geocodezip

5

यहाँ एक समारोह मैं का उपयोग करें:

var map = new google.maps.Map(document.getElementById('map'), { 
      center: new google.maps.LatLng(52.2, 5), 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      zoom: 7 
     }); 

function zoomTo(level) { 
     google.maps.event.addListener(map, 'zoom_changed', function() { 
      zoomChangeBoundsListener = google.maps.event.addListener(map, 'bounds_changed', function (event) { 
       if (this.getZoom() > level && this.initialZoom == true) { 
        this.setZoom(level); 
        this.initialZoom = false; 
       } 
       google.maps.event.removeListener(zoomChangeBoundsListener); 
      }); 
     }); 
    } 
9

अपने नक्शे दो स्तर जूमिंग के लिए तो बस लाइन map.setZoom(map.getZoom() + 2);

5

के इस छोटे से कोड क्या आप देख रहे हैं प्रत्येक ज़ूम स्तर के लिए तराजू हैं जोड़ें।

20: 1128,497220

19: 2256,994440

18: इन का प्रयोग करें 4513,988880

17: 9027,977761

16: 18055,955520

15: 36111,911040

14 : 72223.8220 9

13: 144447,644200

12: 288895,288400

11: 577790,576700

10: 1155581,153000

9: 2311162,307000

8: 4622324,614000

7: 9,244,649।227,000

6: १,८४,८९,२९८.४५००००

5: ३,६९,७८,५९६.९१००००

4: ७,३९,५७,१९३.८२००००

3: १४,७९,१४,३८७.६०००००

2: २९,५८,२८,७७५.३०००००

1: 591657550,500000

+5

को संबोधित करने के लिए उत्तर में संशोधन किया मीटर में फीट में? –

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

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