usar script puntos marcar marcadores google georreferenciación geolocalizacion ejemplos como añadir javascript google-maps center

javascript - script - marcar puntos en google maps api



Volver a centrar un mapa de Google después de que el contenedor haya cambiado de ancho (4)

Tengo un mapa de google configurado con Javascript API V3. Se muestra en un div con un ancho dinámico, ya que un panel de contenido se desliza hacia arriba cuando hacemos clic en un marcador.

Todo funciona bien, pero una cosa: cuando el panel se desliza hacia arriba, el ancho del mapa cambia, por lo que el centro se desplaza hacia la derecha (el panel está a la izquierda). Es realmente inconveniente especialmente para resoluciones pequeñas, donde ni siquiera puede ver el centro después de que el panel está abierto.

Probé el disparador de ''cambio de tamaño'', pero parece que no funciona ... ¿Alguna idea?

Muchas gracias !


Hy allí prueba esto;)

En la inicialización del mapa

var currentMapCenter = null; google.maps.event.addListener(map, ''resize'', function () { currentMapCenter = map.getCenter(); }); google.maps.event.addListener(map, ''bounds_changed'', function () { if (currentMapCenter) { // react here map.setCenter(currentMapCenter); } currentMapCenter = null; });

Después de esto solo llame cuando quiera cambiar el tamaño del mapa.

google.maps.event.trigger(map, ''resize'');


Primero configure una variable para el centro actual, luego use un detector de eventos para detectar un cambio de tamaño, y así establecer el centro.

//Get current center var getCen = map.getCenter(); //Use event listener for resize on window google.maps.event.addDomListener(window, ''resize'', function() { //Set Center map.setCenter(getCen); });


omarello funciona, pero no puedo dejar de votarlo. Probablemente se olvidó de referirse a la var que define las coordenadas de su centro. Todo lo que "resize" hace es tirar de la anchura y altura actual de los divs, ¡sin embargo, no cambia nada en el mapa!

var center = new google.maps.LatLng(39.5, -98.3); $(document).ready(function() { $("#fullsize").click(function(e) { e.preventDefault(); $("#map_canvas").css({ width: ''1000px''}); google.maps.event.trigger(map, "resize"); map.setCenter(center); }); });


Llamar para resize por sí solo no logrará lo que necesita.

Lo que debe hacer es primero (antes de que se cambie el tamaño) obtener el centro actual del mapa

var currCenter = map.getCenter();

Luego debe hacer algo como lo siguiente, después de cambiar el tamaño de su div.

google.maps.event.trigger(map, ''resize''); map.setCenter(currCenter);

Debería hacer el truco

ACTUALIZACIÓN 2018-05-22

Con un nuevo lanzamiento de renderizador en la versión 3.32 de Maps JavaScript API, el evento resize ya no forma parte de la clase Map .

La documentación indica

Cuando se cambia el tamaño del mapa, el centro del mapa se repara

  • El control de pantalla completa ahora conserva el centro.

  • Ya no es necesario activar el evento de cambio de tamaño manualmente.

fuente: https://developers.google.com/maps/documentation/javascript/new-renderer

google.maps.event.trigger(map, "resize"); no tiene ningún efecto a partir de la versión 3.32