Estou incorporando o Google Maps no meu site. Depois que o Google Maps é carregado, preciso iniciar alguns processos JavaScript.
Existe uma maneira de detectar automaticamente quando o Google Maps está totalmente carregado, incluindo downloads de blocos e tudo?
Existe um tilesloaded()
método que deve realizar exatamente essa tarefa, mas não funciona .
javascript
html
google-maps
TRiG
fonte
fonte
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
Respostas:
Isso me incomodou por um tempo com o GMaps v3.
Eu encontrei uma maneira de fazê-lo assim:
O evento "ocioso" é acionado quando o mapa entra no estado ocioso - tudo carregado (ou falhou ao carregar). Eu achei que era mais confiável, então tilesloaded / bounds_changed e, usando o
addListenerOnce
método, o código no fechamento é executado na primeira vez em que "inativo" é acionado e o evento é desanexado.Veja também a seção de eventos na Referência do Google Maps.
fonte
Estou criando html5 aplicativos móveis e notei que o
idle
,bounds_changed
etilesloaded
eventos fogo quando o objeto do mapa é criado e processado (mesmo se não estiver visível).Para fazer meu mapa executar o código quando ele é mostrado pela primeira vez, fiz o seguinte:
fonte
Uncaught ReferenceError: map is not defined
. Eu tentei executar o script com um atraso e no final dos meus outros scripts, mas nada parece funcionar.Se você estiver usando a API do Google Maps v3, isso mudou.
Na versão 3, você deseja essencialmente configurar um ouvinte para o
bounds_changed
evento, que será acionado após o carregamento do mapa. Depois que isso for acionado, remova o ouvinte, pois você não deseja ser informado toda vez que os limites da janela de visualização mudam.Isso pode mudar no futuro, à medida que a API da V3 estiver evoluindo :-)
fonte
tilesloaded
evento.Em 2018:
https://developers.google.com/maps/documentation/javascript/events
fonte
Se você estiver usando componentes da Web , eles terão isso como exemplo:
fonte
GMap2::tilesloaded()
seria o evento que você está procurando.Veja GMap2.tilesloaded para referências.
fonte
Onde a variável
map
é um objeto do tipo GMap2:fonte
No meu caso, a imagem em bloco carregada a partir do URL remoto e o
tilesloaded
evento foi acionado antes da renderização da imagem.Eu resolvi com o seguinte caminho sujo.
fonte
Você pode verificar o
GMap2.isLoaded()
método a cadan
milissegundo para ver se o mapa e todos os seus blocos foram carregados (window.setTimeout()
ouwindow.setInterval()
são seus amigos).Embora isso não forneça o evento exato da conclusão do carregamento, deve ser bom o suficiente para acionar seu Javascript.
fonte