2010-03-02 2 views

Antwort

26

Dort gehen Sie:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps getBoundsZoomLevel Demo</title> 
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" 
      type="text/javascript"></script> 
</head> 
<body onunload="GUnload()"> 

    <div id="map" style="width: 400px; height: 300px"></div> 

    <script type="text/javascript"> 

    if (GBrowserIsCompatible()) { 
     var map = new GMap2(document.getElementById("map")); 
     var markerBounds = new GLatLngBounds(); 

     for (var i = 0; i < 10; i++) { 
     var randomPoint = new GLatLng(39.00 + (Math.random() - 0.5) * 20, 
             -77.00 + (Math.random() - 0.5) * 20); 

     map.addOverlay(new GMarker(randomPoint)); 
     markerBounds.extend(randomPoint); 
     } 

     map.setCenter(markerBounds.getCenter(), 
        map.getBoundsZoomLevel(markerBounds)); 
    } 
    </script> 
</body> 
</html> 

Wir haben 10 schaffen zufällige Punkte im obigen Beispiel und dann jeden Punkt an GLatLngBounds.extend() übergeben. Schließlich erhalten wir die richtige Zoomstufe mit GMap2.getBoundsZoomLevel().

Google Maps getBoundsZoomLevel Demo

2

können Sie die extend Methode des Objekts GLatLngBounds verwenden, die auf der Karte ein Rechteck darstellt.

var bounds = new GLatLngBounds(); 

Schleife um alle points auf der Karte, für jeden die Grenzen Ihres GLatLngBounds Objekt erstreckt.

bounds.extend(myPoint); 

Schließlich können Sie Ihre Grenzen-Objekt verwenden, das Zentrum und Zoom Ihrer Karte zu setzen (wo map ist Ihr Kartenobjekt)

map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds)); 
+3

Dies funktioniert nur für v2 – Jaseem

22

Wenn Sie API-Version 3 verwenden, können Sie ersetzen

map.setCenter(markerBounds.getCenter(), map.getBoundsZoomLevel(markerBounds)); 

mit

map.fitBounds(markerBounds). 
17

Stellen Sie die Google Map-Zoomstufe so ein, dass alle Markierungen angezeigt werden.

Maps API v3

  1. bekommen Marker
  2. get Grenzen von Markern
  3. Set Zentrum Auf der Karte, indem sie es an Marker Grenzen Einpassen

var markers = [markerObj1, markerObj2, markerObj3]; 

var newBoundary = new google.maps.LatLngBounds(); 

for(index in markers){ 
    var position = markers[index].position; 
    newBoundary.extend(position); 
} 

map.fitBounds(newBoundary); 

Der oben stehende Code wird Ihre Karte automatisch zentrieren und zoomen, so dass alle Markierungen sichtbar sind.

Verwandte Themen