Pergunta

Assim que eu tiver um aplicativo que contém um mapa com (várias centenas) de marcadores.Eu uso o markerclusterer.js fornecido pelo Google para o cluster meu marcadores e fazer a coisa toda mais fácil de ver.Eu estou utilizando a API V3.

Eu estou bem com tudo isso.Mas o que eu gostaria de fazer é realizar alguma ação quando o markerclusterer terminou de cluster de todos os marcadores.Eu tentei fazer isso sozinho, mas sem olhar.

Alguma sugestão?(Eu estou supondo que esta vai ser mais fácil do que eu penso e o meu cérebro é apenas frito)

Foi útil?

Solução

Eu só estava me perguntando a mesma coisa.Isso é como eu fiz:

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

Outras dicas

O mapa "IDle" trabalho para você?Deve disparar quando o marcador terminar (supondo que você esteja carregando o marcador quando a página é carregada).

Parece que esta biblioteca não está sendo mantido.Ele não funciona com o v3 corretamente por anos e nenhuma solução foi desenvolvida.

Então, eu baixei o não-ser minimizadas versão e colocá-lo em código-fonte para os projetos em que estou a trabalhar.Solução aceita só vai funcionar(para v3) se você fizer o abaixo alterações diretamente na biblioteca:

encontrar createClusters_ função adicionar google.maps.event.trigger(this, "clusteringend", this); depois que o loop for.Então, ele vai olhar como abaixo:

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

Agora você pode usar:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top