Estoy incrustando Google Maps en mi sitio web. Una vez que se carga Google Maps, necesito iniciar algunos procesos de JavaScript.
¿Hay alguna forma de detectar automáticamente cuando Google Maps se ha cargado por completo, incluidas las descargas de mosaicos y todo?
Existe un tilesloaded()
método que se supone que realiza exactamente esta tarea, pero no funciona .
javascript
html
google-maps
Trigonometría
fuente
fuente
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
Respuestas:
Esto me molestó por un tiempo con GMaps v3.
Encontré una manera de hacerlo así:
El evento "inactivo" se activa cuando el mapa pasa al estado inactivo: todo se cargó (o no se pudo cargar). Encontré que es más confiable que tilesloaded / limits_changed y usando el
addListenerOnce
método, el código en el cierre se ejecuta la primera vez que se activa "inactivo" y luego se desconecta el evento.Consulte también la sección de eventos en la Referencia de Google Maps.
fuente
Estoy creando aplicaciones móviles HTML5 y me di cuenta que el
idle
,bounds_changed
ytilesloaded
eventos de fuego cuando se crea y se hace (aunque no es visible) el mapa del objeto.Para hacer que mi mapa ejecute el código cuando se muestra por primera vez, hice lo siguiente:
fuente
Uncaught ReferenceError: map is not defined
. He intentado ejecutar el script con retraso y al final de mis otros scripts, pero parece que nada funciona.Si está utilizando la API de Maps v3, esto ha cambiado.
En la versión 3, esencialmente desea configurar un escucha para el
bounds_changed
evento, que se activará al cargar el mapa. Una vez que se haya activado, elimine el oyente ya que no desea recibir información cada vez que cambien los límites de la ventana gráfica.Esto puede cambiar en el futuro a medida que evolucione la API V3 :-)
fuente
tilesloaded
evento.En 2018:
https://developers.google.com/maps/documentation/javascript/events
fuente
Si está utilizando componentes web , entonces tienen esto como ejemplo:
fuente
GMap2::tilesloaded()
sería el evento que estás buscando.Ver GMap2.tilesloaded para referencias.
fuente
Donde la variable
map
es un objeto de tipo GMap2:fuente
En mi caso, la imagen de mosaico cargada desde la URL remota y el
tilesloaded
evento se activaron antes de representar la imagen.Lo resolví siguiendo el camino sucio.
fuente
Puede verificar el
GMap2.isLoaded()
método cadan
milisegundos para ver si el mapa y todos sus mosaicos se cargaron (window.setTimeout()
owindow.setInterval()
son sus amigos).Si bien esto no le dará el evento exacto de la finalización de la carga, debería ser lo suficientemente bueno como para activar su Javascript.
fuente