2015-07-15 2 views
1

Existe-t-il un moyen d'être averti lorsqu'un graphique Google Maps est dessiné à l'écran?Notifier lorsque Polygon est chargé

J'ai des polygones éditables avec plusieurs centaines de points et il faut du temps pour qu'ils s'affichent sur l'écran (environ une seconde). Je voudrais ajouter une sorte de "chargement" et ensuite, quand le polygone éditable est affiché, cacher la notification.

J'ai essayé ce qui suit, mais comme il n'y a pas d'événement load sur le polygone, cela ne fonctionne pas. Ma seule autre option est de définir une sorte de minuterie et d'essayer de deviner quand le polygone s'affiche.

+1

Comment allez-vous dessiner le polygone? Techniquement, si vous poussez des points, vous pouvez utiliser une promesse ou un rappel, vous n'auriez pas besoin d'un événement. – bribeiro

+0

Veuillez partager le code dans lequel vous créez votre polygone. – MrUpsidown

Répondre

1

Je l'ai fait des tests pour vraiment longs polygones (125000 points), en utilisant le code suivant:

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

Comme il y a une telle différence dans le temps (68 ms), par rapport à un 1 différence de ms avec seulement deux dates, je pense que google.maps.Polygon.setMap est synchrone. Cela signifie qu'il est possible de simplement déclencher l'événement en tant que bloc de code suivant la commande setMap.

Si vous voulez, vous pouvez créer une fonction prototype:

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