Question

J'ai donc une application qui contient une carte avec (plusieurs centaines) de marqueurs.J'utilise le Markerclusterer.js fourni par Google pour regrouper mes marqueurs et rendre le tout plus facile à visualiser.J'utilise l'API V3.

Tout ça me va.Mais ce que j'aimerais faire, c'est effectuer une action lorsque le Markerclusterer a fini de regrouper tous les marqueurs.J'ai essayé de le faire moi-même mais sans aucun regard.

Aucune suggestion?(Je suppose que ce sera plus facile que je ne le pense et mon cerveau est juste grillé)

Était-ce utile?

La solution

Je me demandais simplement la même chose.C'est comme ça que je l'ai fait:

google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);

Autres conseils

La carte "" Idle " fonctionne pour vous?Il devrait tirer une fois que le marqueur est terminé (en supposant que vous chargez le marqueur de clusterner lorsque la page se charge).

Il semble que cette bibliothèque ne soit pas maintenue.Cela ne fonctionne pas correctement avec la v3 depuis des années et aucune solution n'a été développée.

J'ai donc téléchargé la version non réduite et l'ai mise dans le code source des projets sur lesquels je travaille.La solution acceptée ne fonctionnera (pour la v3) que si vous apportez les modifications ci-dessous directement dans la bibliothèque :

trouver la fonction createClusters_ ajouter google.maps.event.trigger(this, "clusteringend", this); après la boucle for.Cela ressemblera donc à ci-dessous :

MarkerClusterer.prototype.createClusters_ = function() {
  if (!this.ready_) {
    return;
  }

  // Get our current map view bounds.
  // Create a new bounds object so we don't affect the map.
  var mapBounds = new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),
      this.map_.getBounds().getNorthEast());
  var bounds = this.getExtendedBounds(mapBounds);

  for (var i = 0, marker; marker = this.markers_[i]; i++) {
    if (!marker.isAdded && this.isMarkerInBounds_(marker, bounds)) {
      this.addToClosestCluster_(marker);
    }
  }
  google.maps.event.trigger(this, "clusteringend", this);
};

Vous pouvez désormais utiliser :

google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top