Frage

Ich habe also eine Anwendung, die eine Karte mit (mehreren Hundert) Markierungen enthält.Ich verwende die von Google bereitgestellte Datei markerclusterer.js, um meine Marker zu gruppieren und das Ganze übersichtlicher zu gestalten.Ich verwende API V3.

Mir geht das alles gut.Aber ich möchte eine Aktion ausführen, wenn der Markerclusterer mit dem Clustering aller Marker fertig ist.Ich habe versucht, es selbst zu machen, aber ohne hinzusehen.

Irgendwelche Vorschläge?(Ich gehe davon aus, dass das einfacher sein wird, als ich denke, und mein Gehirn einfach nur frittiert ist)

War es hilfreich?

Lösung

Ich habe nur das gleiche gefragt.So habe ich es getan:

generasacodicetagpre.

Andere Tipps

wird die Karte "Leerlauf" Ereignisarbeit für Sie?Es sollte feuern, sobald der Markerclusterer fertig ist (vorausgesetzt, Sie laden den Markerclusterer, wenn die Seite geladen wird).

Es scheint, dass diese Bibliothek nicht gepflegt wird.Seit Jahren funktioniert es mit v3 nicht richtig und es wurde keine Lösung entwickelt.

Also habe ich die nicht minimierte Version heruntergeladen und sie in den Quellcode für die Projekte eingefügt, an denen ich arbeite.Die akzeptierte Lösung funktioniert nur (für Version 3), wenn Sie die folgenden Änderungen direkt in der Bibliothek vornehmen:

Finden Sie die Funktion „createClusters_“ und fügen Sie sie hinzu google.maps.event.trigger(this, "clusteringend", this); nach der for-Schleife.Es wird also wie folgt aussehen:

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);
};

Jetzt können Sie Folgendes verwenden:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top