Recientemente me cambié a la API de Google Maps V3. Estoy trabajando en un ejemplo simple que traza marcadores de una matriz, sin embargo, no sé cómo centrar y hacer zoom automáticamente con respecto a los marcadores.
He buscado en la red alta y baja, incluida la documentación de Google, pero no he encontrado una respuesta clara. Sé que podría simplemente tomar un promedio de las coordenadas, pero ¿cómo establecería el zoom en consecuencia?
function initialize() {
var myOptions = {
zoom: 10,
center: new google.maps.LatLng(-33.9, 151.2),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
setMarkers(map, beaches);
}
var beaches = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.423036, 151.259052, 5],
['Cronulla Beach', -34.028249, 121.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.450198, 151.259302, 1]
];
function setMarkers(map, locations) {
var image = new google.maps.MarkerImage('images/beachflag.png',
new google.maps.Size(20, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png',
new google.maps.Size(37, 32),
new google.maps.Point(0,0),
new google.maps.Point(0, 32));
var lat = map.getCenter().lat();
var lng = map.getCenter().lng();
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18 , 1],
type: 'poly'
};
for (var i = 0; i < locations.length; i++) {
var beach = locations[i];
var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
shadow: shadow,
icon: image,
shape: shape,
title: beach[0],
zIndex: beach[3]
});
}
}
javascript
google-maps
google-maps-api-3
Michael Bradley
fuente
fuente
Tengo todo ordenado - vea las últimas líneas para el código - (
bounds.extend(myLatLng); map.fitBounds(bounds);
)fuente
Mi sugerencia para google maps api v3 sería (no creo que se pueda hacer de manera más eficiente):
En el resultado, usted ajustará todos los puntos en los límites de su ventana de mapa.
El ejemplo funciona perfectamente y puedes consultarlo libremente aquí www.zemelapis.lt
fuente
false
sibounds
es asínull
, podríasmaps[ mapId ].getBounds()
.Las respuestas son perfectas para ajustar los límites del mapa para los marcadores, pero si desea expandir los límites de Google Maps para formas como polígonos y círculos, puede usar los siguientes códigos:
Para los círculos
Para polígonos
Para rectángulos
Para polilíneas
fuente
El método setCenter () sigue siendo aplicable para la última versión de API de Maps para Flash donde fitBounds () no existe.
fuente
Use debajo de uno,
map.setCenter (limits.getCenter (), map.getBoundsZoomLevel (límites));
fuente