Pregunta

Así que tengo una aplicación que contiene un mapa con (varios cientos) de marcadores.Utilizo el MARKERCLUSTER.JS suministrado por Google para agrupar mis marcadores y hacer que toda la cosa sea más fácil de mirar.Estoy usando API V3.

Estoy bien con todo eso.Pero lo que me gustaría hacer es realizar alguna acción cuando el MARKERCLUSTER ha terminado de agrupar todos los marcadores.He tratado de hacerlo yo mismo pero sin mirar.

¿Alguna sugerencia?(Supongo que esto será más fácil de lo que creo y mi cerebro está frito)

¿Fue útil?

Solución

Me estaba preguntando lo mismo.Así es como lo hice:

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

Otros consejos

será el mapa "inactivo" ¿Trabaje para usted?Debe incendiarse una vez que haya finalizado el MARKERCLUSTER (asumiendo que está cargando el MARKERCLUSTER cuando se carga la página).

Parece que esta biblioteca no se está manteniendo.No funciona con V3 correctamente durante años y no se ha desarrollado ninguna solución.

Entonces, descargué la versión no minimizada y la puse en código fuente para los proyectos que estoy trabajando.La solución aceptada solo funcionará (para V3) si realiza los cambios a continuación directamente en la biblioteca:

Encuentra Función createclusters_ Agregue google.maps.event.trigger(this, "clusteringend", this); después del bucle POR.Así que se verá a continuación:

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

Ahora puedes usar:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top