Как узнать, когда data.addGeoJson () завершил функцию рендеринга в Google Maps API V3 - PullRequest
0 голосов
/ 21 сентября 2018

Есть ли событие или другой способ определить, когда объекты отображаются после добавления их через map.data.addGeoJson()?

Я пробовал события addfeature и setgeometry, но addfeature запускается (324 раза) до idle и tilesloaded, и оба они запускаются еще до начала рендеринга.setgeometry не запускается вообще.

Мне нужно автоматизировать создание снимка экрана с карты, но мне нужно знать, когда все будет полностью обработано, прежде чем я это сделаю.

1 Ответ

0 голосов
/ 08 октября 2018

Техника, которую я использовал, заключается в том, чтобы подсчитать, сколько функций я добавляю на карты Google, а затем прочитать DOM, чтобы увидеть, все ли они обнаружены.

Сначала вам нужно изучить DOM, чтобы найти элементы и некоторые свойства, которые являются уникальными для вашей функции.В моем случае это были маркеры с пользовательскими значками, поэтому я мог использовать тег src:

<img alt="" src="images/colour008s.png" draggable="false" style="position: absolute; left: 0px; top: 0px; user-select: none; border: 0px; padding: 0px; margin: 0px; max-width: none; width: 22px; height: 34px;">

После загрузки JSON я установил интервал, чтобы увидеть, появились ли они, и их как минимум столько же.как я и ожидал:

timerId = setInterval(function () {
    var points = document.querySelectorAll('img[src="images/colour008s.png"]');
    if (points.length >= totalPoints) {
        clearTimeout(timerId);
        console.log("All points loaded");
    }
}, 250);

Пока это работает довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...