Estoy configurando varios marcadores en mi mapa y puedo establecer estáticamente los niveles de zoom y el centro, pero lo que quiero es cubrir todos los marcadores y hacer el mayor zoom posible teniendo todos los mercados visibles
Los métodos disponibles son los siguientes
y
Ni setCenter
admite entrada de ubicación múltiple o matriz de ubicación ni setZoom
tiene este tipo de funcionalidad
javascript
google-maps-api-3
Trikaldarshi
fuente
fuente
latlng
a unbounds
objeto cada vez que agregue un marcador y configure su mapa para que se ajuste a los límites finales. Vea la respuesta aquí: stackoverflow.com/questions/1556921/…Respuestas:
Necesitas usar el
fitBounds()
método.Documentación de developers.google.com/maps/documentation/javascript :
fuente
getPosition
método?LatLngLiteral
lugar de tener una instancia de Marker. por ejemplo,bounds.extend({lat: 123, lng: 456})
.fitBounds(bounds, int)
que le permitirá tener un poco de espacio entre los marcadores y los bordes del mapa (o menos espacio si lo necesita). Ver documentaciónPara extender la respuesta dada con algunos trucos útiles:
ACTUALIZACIÓN:
La investigación adicional en el tema muestra que fitBounds () es asincrónico y es mejor hacer una manipulación de Zoom con un oyente definido antes de llamar a Fit Bounds.
Gracias @Tim, @ xr280xr, más ejemplos sobre el tema: SO: setzoom-after-fitbounds
fuente
addListenerOnce
onzoom_changed
para establecer el zoom después de que se haya inicializado su valor.yourMap
,map
ythis
. Tal vez sea una buena idea hacerlo más consistente.El tamaño de la matriz debe ser mayor que cero. De lo contrario, tendrá resultados inesperados.
fuente
Existe esta
MarkerClusterer
utilidad del lado del cliente disponible para Google Map, tal como se especifica aquí en los Artículos para desarrolladores de Google Map , a continuación se describe brevemente cuál es su uso:Hay muchos enfoques para hacer lo que solicitó:
Puede leer sobre ellos en el enlace proporcionado arriba.
Marker Clusterer
utiliza agrupación basada en cuadrícula para agrupar todos los marcadores que desean la cuadrícula. La agrupación basada en cuadrículas funciona al dividir el mapa en cuadrados de cierto tamaño (el tamaño cambia en cada zoom) y luego agrupar los marcadores en cada cuadrado de cuadrícula.Antes de agrupar
Después de agrupar
Espero que esto sea lo que estabas buscando y esto resolverá tu problema :)
fuente