Domanda

Quindi ho un'applicazione che contiene una mappa con (diverse centinaia) di marcatori.Io uso il markercluster.js fornito da Google per raggruppare i miei marcatori e rendere il tutto più facile da guardare.Sto usando API V3.

Sto bene con tutto questo.Ma quello che vorrei fare è eseguire qualche azione quando il markerclusteratore ha finito di clustering di tutti i marcatori.Ho provato a farlo da solo ma senza sguardo.

Qualche suggerimento?(Supponendo che questo sarà più facile di quanto penso e il mio cervello sia solo fritto)

È stato utile?

Soluzione

Mi stavo solo chiedendo la stessa cosa.Questo è come l'ho fatto:

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

Altri suggerimenti

la mappa "Idle" Evento lavoro per te?Dovrebbe sparare una volta terminato il markerclusteratore (supponendo che tu stia caricando il markercluster quando la pagina viene caricata).

Sembra che questa libreria non venga mantenuta.Non funziona con V3 correttamente per anni e non è stata sviluppata alcuna soluzione.

Allora, ho scaricato la versione non minimizzata e ho inserito il codice sorgente per i progetti che sto lavorando.La soluzione accettata funzionerà solo (per V3) se si effettuano le modifiche seguenti direttamente nella libreria:

Trova CreateClusters_ Funzione Aggiungi google.maps.event.trigger(this, "clusteringend", this); dopo il loop per il loop.Quindi sembrerà di seguito:

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

Ora puoi usare:

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

.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top