Обработка, когда рисование полигонов завершено в google maps api v3 - PullRequest
7 голосов
/ 24 марта 2012

Кажется, что рисование полигонов асинхронно в google maps api v3 .Попробуйте нажать кнопку «Загрузить» в этом примере:

http://jsfiddle.net/rmXXF/

текст «ВЫПОЛНЕНО» пишется гораздо раньше, чем рисуется сетка!Кажется, что рисование прямоугольной сетки является асинхронным. Я хочу, чтобы текст ГОТОВО отображался ПОСЛЕ отрисовки сетки! Есть ли какой-нибудь обработчик событий для этого?

Важная часть кода находится в функции action():

polygons = draw_all_squares(map); // draw grid here
document.getElementById('status').innerHTML = 'DONE'; // displayed 2 seconds
                                                      // before the grid! 

Обратите внимание, что событие 'ожидания' карты не работает для этого, потому что карта не перемещается / масштабируется.Вы можете попробовать здесь: http://jsfiddle.net/92Hxj/

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

Ответы [ 2 ]

8 голосов
/ 26 марта 2012

Путем небольшого повторного центрирования карты после прорисовки всех многоугольников это добавляется в ту же внутреннюю очередь событий карт Google, как показано в этом примере: http://jsfiddle.net/rmXXF/40/

google.maps.event.addListener(map, 'idle', function() {
 document.getElementById('status').innerHTML = 'DONE';
});

и

my_map.setCenter(new google.maps.LatLng(my_map.getCenter().lat(), my_map.getCenter().lng() + .000000001));
3 голосов
/ 26 марта 2012

Вы должны использовать наложение и прослушать событие менеджера чертежей 'rectanglecomplete'. Я могу написать пример после обеда.

Дэвид прав. Я неправильно прочитал документацию. Принести извинения. Он должен получить награду.

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