Известяване, когато Polygon се зареди

Има ли начин да бъдете уведомени, когато многоъгълник на Google Maps е начертан на екрана?

Имам редактируеми полигони с няколкостотин точки и отнема известно време, докато се покажат на екрана (около секунда). Бих искал да добавя някакъв вид „зареждане“ и след това, когато се покаже многоъгълникът с възможност за редактиране, скриване на известието.

Опитах следното, но тъй като няма load събитие на полигона, не работи.

            google.maps.event.addDomListener(gPolygon, 'load', function () {
               alert("addDomListener -- LOAD");
            });
            google.maps.event.addListener(gPolygon, 'load', function () {
               alert("addListener -- LOAD");
            });

Единствената ми друга възможност е да настроя някакъв вид таймер и да се опитам да отгатна кога се показва многоъгълникът.


person Cloud SME    schedule 15.07.2015    source източник
comment
Как рисувате многоъгълника? Технически, ако натискате точки, можете да използвате обещание или обратно извикване, няма да имате нужда от събитие.   -  person bribeiro    schedule 16.07.2015
comment
Моля, споделете кода, където създавате своя полигон.   -  person MrUpsidown    schedule 16.07.2015


Отговори (1)


Направих тестове за наистина дълги многоъгълници (125 000 точки), използвайки следния код:

> console.log(new Date().getTime());p.setMap(map);console.log(new Date().getTime())
1437051805161
1437051805229
< undefined

Тъй като има толкова голяма разлика във времето (68 ms), в сравнение с 1 ms разлика само с две дати, мисля, че google.maps.Polygon.setMap е синхронен. Това означава, че е възможно просто да задействате събитието като друг блок от код след командата setMap.

Ако искате, можете да създадете функция prototype:

google.maps.Polygon.prototype.setMapListener(map, func, args){
  this.setMap(map);
  func(args);
}
person bcdan    schedule 16.07.2015