2012-03-19 18 views
15

Tenemos filtro de búsqueda a distancia. Tiene una vista de mapa que permite establecer el marcador de base y el cuadro de texto de entrada que permite ingresar la distancia en kilómetros.Cómo alinear los círculos de los mapas en el mapa

Luego, en la ventana gráfica que utiliza circle mostrar esta distancia en el mapa.

Pregunta, ¿cómo puedo acercar el mapa para que quepa en el círculo?

Respuesta

38

A google.maps.Circle tiene un método getBounds() que devuelve el LatLngBounds del círculo. Es posible utilizar estos límites como argumento para google.maps.Map.fitBounds()

Si se utiliza un círculo, se puede hacer esto:

map.fitBounds(circle.getBounds()); 

... al final del init-función.

http://jsfiddle.net/doktormolle/MHLjy/

+0

Este sencillo. Gracias. Utilicé map.fitBounds() pero no noté que circule tiene getBounds. Muy agradable :) –

+0

Muy bien gracias –

15

Para múltiples círculos usar unión en lugar de extender :

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

$.each(circles, function(index, circle){ 
    bounds.union(circle.getBounds()); 
}); 

map.fitBounds(bounds); 
+1

Agradable. Lo he usado para asegurarme de que * al menos * esté abarcado el círculo del radio de búsqueda, luego extendí los límites para cualquier marcador más lejano con latlngBounds.extend (marker.getPosition()) – Jon

Cuestiones relacionadas