Tengo un Google Maps (V3) en mi página con un ancho de página del 100% con un marcador en el medio. Cuando cambio el tamaño del ancho de la ventana de mi navegador, me gustaría que el mapa permanezca centrado (receptivo). Ahora el mapa solo se queda en el lado izquierdo de la página y se vuelve más pequeño.
ACTUALIZACIÓN Lo hice funcionar exactamente como se describe gracias a Duncan. Este es el código final:
var center;
function calculateCenter() {
center = map.getCenter();
}
google.maps.event.addDomListener(map, 'idle', function() {
calculateCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
javascript
google-maps
google-maps-api-3
Gregory Bolkenstijn
fuente
fuente
center
no necesita ser global. Proporcionarcenter
(ycalculateCenter
) está en el mismo alcance quemap
, entonces todo debería funcionar. Por supuesto, simap
es global, entonces también tendrá que arreglar eso :)Respuestas:
Debe tener un detector de eventos para cuando la ventana cambia de tamaño. Esto funcionó para mí (póngalo en su función de inicialización):
fuente
var center; google.maps.event.addListener(map, 'center_changed', function() { center = map.getCenter(); }); google.maps.event.addDomListener(window, 'resize', function() { map.setCenter(center); });
no funciona. Cualquier ayuda sería apreciada.Detecta el evento de cambio de tamaño del navegador, cambia el tamaño del mapa de Google y conserva el punto central:
Puede usar el mismo código en otros controladores de eventos al cambiar el tamaño del mapa de Google a través de otros medios (por ejemplo, con un control 'redimensionable' jQuery-UI).
Fuente: http://hsmoore.com/blog/keep-google-map-v3-centered-when-browser-is-resized/ crédito a @smftre por el enlace.
Nota: Este código estaba vinculado en el comentario de @ smftre sobre la respuesta aceptada. Creo que vale la pena agregarlo como su propia respuesta, ya que es realmente superior a la respuesta aceptada. Elimina la necesidad de una variable global para rastrear el punto central y un controlador de eventos para actualizar esa variable.
fuente
google.maps.event.trigger(map, "resize");
?Algunos buenos ejemplos en w3schools.com. Usé lo siguiente y funciona muy bien.
http://www.w3schools.com/googleapi/google_maps_events.asp
fuente
html: crea un div con una identificación de tu elección
js: crea un mapa y adjúntalo al div que acabas de crear
Centrar cuando la ventana cambia de tamaño
fuente
Actualización de la solución anterior a es6.
fuente
addDomListener
tanto para elwindow
, que es un elemento DOM como para elmap
, que no lo es. El objeto de mapa debe usar elgoogle.maps.event.addListener
o su propiomap.addListener
controlador de eventos.