Я встраиваю Карты Google на свой веб-сайт. После загрузки Карт Google мне нужно запустить несколько процессов JavaScript.
Есть ли способ автоматического определения полной загрузки Карт Google, включая загрузку листов и все такое?
Существует tilesloaded()
метод, который должен выполнять именно эту задачу, но он не работает .
javascript
html
google-maps
наряжать
источник
источник
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
Ответы:
Это беспокоило меня некоторое время с GMaps v3.
Я нашел способ сделать это так:
Событие "idle" запускается, когда карта переходит в состояние ожидания - все загружено (или не удалось загрузить). Я обнаружил, что он более надежен, чем tileloaded / bounds_changed, и с помощью
addListenerOnce
метода код в замыкании выполняется при первом запуске «idle», а затем событие отсоединяется.Смотрите также раздел событий в справочнике Google Maps.
источник
Я создаю мобильные приложения html5 и заметил, что события
idle
,bounds_changed
иtilesloaded
запускаются, когда объект карты создается и отображается (даже если он не виден).Чтобы моя карта выполнялась при первом показе кода, я сделал следующее:
источник
Uncaught ReferenceError: map is not defined
. Я пытался запустить скрипт с задержкой и в конце других моих скриптов, но, похоже, ничего не работает.Если вы используете Maps API v3, это изменилось.
В версии 3 вы по существу хотите настроить прослушиватель для
bounds_changed
события, которое будет срабатывать при загрузке карты. Как только это сработает, удалите слушателя, так как вы не хотите получать информацию каждый раз, когда изменяются границы области просмотра.Это может измениться в будущем, поскольку API V3 развивается :-)
источник
tilesloaded
мероприятия.В 2018 году:
https://developers.google.com/maps/documentation/javascript/events
источник
Если вы используете веб-компоненты , то они имеют это в качестве примера:
источник
GMap2::tilesloaded()
будет событие, которое вы ищете.Смотрите GMap2.tilesloaded для ссылок.
источник
Где переменная
map
является объектом типа GMap2:источник
В моем случае Tile Image загружается с удаленного URL и
tilesloaded
событие запускается перед рендерингом изображения.Я решил следующим грязным путем.
источник
Вы можете проверять
GMap2.isLoaded()
метод каждыеn
миллисекунды, чтобы увидеть, были ли загружены карта и все ее тайлы (window.setTimeout()
илиwindow.setInterval()
ваши друзья).Хотя это не даст вам точного события завершения загрузки, оно должно быть достаточно для запуска вашего Javascript.
источник