4

Google지도를 만들기 위해 jquery-ui-mapmarkerclusterer 플러그인을 사용하는 웹 기반지도가 있습니다.markerclusterer 마커가 클러스터에 있는지 확인합니다.

마커를 표시할지 여부를 필터링 한 다음지도를 업데이트합니다.

클러스터되지 않은 마커 목록을 만들어야하므로이 방법으로 마커에 대해 클러스터를 확인하고 클러스터되지 않은 마커를 찾는 방법이 필요합니다.

이렇게 할 수있는 방법이 있습니까?

클러스터를 순환하고 수동으로 클러스터에 대해 마커를 확인하려고했지만 클러스터 등록 정보 var_clusterer.clusters_이 정의되지 않았다는 오류 메시지가 나타납니다.

답변

6

참고 :이 솔루션은 MarkerClustererPlus 라이브러리

당신은 MarkerClusterer에 의해 처리되는 개체의 모든 클러스터의 배열을 요리하는 getClusters() 메소드를 사용할 수를 사용합니다.

var clusterManager = new MarkerClusterer(googleMap, markersArray, clusterOptions); // setup a new MarkerClusterer 

var clusters = clusterManager.getClusters(); // use the get clusters method which returns an array of objects 

for(var i=0, l=clusters.length; i<l; i++){ 
    for(var j=0, le=clusters[i].markers_.length; j<le; j++){ 
     marker = clusters[i].markers_[j]; // <-- Here's your clustered marker 
    } 
} 

getClusters() 루프를 사용하여 배열을 가져온 후에 클러스터 객체를 루프합니다. 각 클러스터에 대해 현재 markers_ 배열을 가져 와서 클러스터 된 표식을 검색 할 수 있습니다. MarkerClustererPlus docs

+0

좋은 소식과 좋은 소식 ... 좋은 소식 : 직접 답변을 찾았습니다. 그것은 정확히 당신이 묘사 한 것과 같습니다. 나쁜 소식 : 저는 일주일 동안 답을 찾아 보았습니다 .-P. 비슷한 문제가있는 사람은 누구나 위와 같은 조치를 취해야합니다. 대답 주셔서 감사합니다 – jaget

+2

일반 MarkerClusterer에서 getClusters() 메소드가 없기 때문에 MarkerClustererPlus를 사용하고 있습니까? –

+1

@DejanStuparic [docs] (http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.7/docs/reference.html#MarkerClusterer)를 살펴보면, 그들은 분명히'getClusters()'메소드를 보여준다. – hitautodestruct

2

A는 약간 덤프,하지만 효과적인 방법은 ....

당신은 (1) 전에 즉시 마커 클러스터 러 개체에 개별적으로 마커를 삽입 할 수 있습니다

getClusters()는 문서에 지금 그리고 (2) 이후에 .getTotalCluster() 메서드를 호출하여 새로 추가 된 마커가 클러스터로 들어갈 지 확인하십시오.

getClusters()가 나에게 효과가 없거나, jquery를 통해 사용하지 않은 경우이 메서드를 사용합니다.

var old_cluster_val = markerCluster.getTotalClusters(); // <-----(1) 
    markerCluster.addMarker(marker); 
var new_cluster_val = markerCluster.getTotalClusters(); // <-----(2) 

if (old_cluster_val == new_cluster_val) { 
    in_a_cluster.push(marker); 
} else { 
    not_in_cluster.push(marker); 
} 
+1

약간 덤프가 될 수 있지만 배열에 분명히 11 개의 마커가 있어도 markerCluster.getTotalClusters()를 사용하면 항상 0을 반환합니다. 무슨 문제가 될 수 있니?! – suMi

관련 문제