문제

그래서 나는 마커의지도가있는지도가 포함 된 응용 프로그램이 있습니다.Google에서 제공 한 MarkerClusterer.js를 사용하여 마커를 클러스터링하고 전체를 쉽게 볼 수 있습니다.API v3을 사용하고 있습니다.

나는 그 모든 것을 가지고 괜찮습니다.그러나 내가하고 싶은 것은 MarkerClusterer가 모든 마커를 클러스터링 한 것일 때 어떤 조치를 취하는 것입니다.나는 그것을 나 자신을하려고했지만 아무 것도 보지 못했습니다.

모든 제안?(나는 이것이 내가 생각하고 내 뇌가 튀어 나오는 것보다 쉽게 생각할 것이라고 가정합니다.)

도움이 되었습니까?

해결책

나는 똑같은 것을 궁금해하고있었습니다.이것은 내가 어떻게했는지입니다 :

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

다른 팁

"유휴" 이벤트가 당신을 위해 작업을 수행 하시겠습니까?MarkerClusterer가 완료되면 (페이지로드시 MarkerClusterer를로드하는 경우)가 완료되면 화재해야합니다.

이 라이브러리가 유지되지 않는 것 같습니다.수년간 V3에서는 제대로 작동하지 않으며 해결책이 개발되지 않았습니다.

그래서, 나는 최소화되지 않은 버전을 다운로드하여 일하는 프로젝트에 대한 소스 코드에 넣습니다.허용 솔루션은 라이브러리에서 직접 변경 사항을 직접 만드는 경우에만 작동합니다 (v3).

find createclusters_ 함수 for 루프 후에 google.maps.event.trigger(this, "clusteringend", this);를 추가하십시오.그래서 그것은 아래와 같을 것입니다 :

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

이제 다음을 사용할 수 있습니다 :

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

.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top