2010-03-02 36 views

Respuesta

26

ahí lo tienes:

<!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> 

Estamos creando 10 puntos al azar en el ejemplo anterior y luego pasar cada punto a GLatLngBounds.extend(). Finalmente obtenemos el nivel de zoom correcto con GMap2.getBoundsZoomLevel().

Google Maps getBoundsZoomLevel Demo

2

Se puede utilizar el método del objeto GLatLngBounds, lo que representa un rectángulo en el mapa extend.

var bounds = new GLatLngBounds(); 

bucle alrededor de todo el points en su mapa, extendiendo los límites de sus GLatLngBounds objeto para cada uno.

bounds.extend(myPoint); 

Por último, puede utilizar sus límites objeto para establecer el centro y zoom del mapa (donde map es su objeto de mapa)

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

Esto funciona solo para v2 – Jaseem

22

Si está utilizando la API de la versión 3 se puede reemplazar

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

con

map.fitBounds(markerBounds). 
17

establece el nivel de zoom de Google Map para mostrar todos los marcadores?

Maps API v3

  1. llegar Con marcadores
  2. límites consigo de marcadores
  3. centro
  4. conjunto en el mapa mediante el ajuste a los límites de marcadores

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); 

El código de arriba centrará automáticamente y hará zoom en su mapa para que todos los marcadores estén visibles.

Cuestiones relacionadas