1

プロジェクトでクラスター (MarkerClusterer) を使用して Google マップ API を使用しました。

var markers=[];
for(var i=0;i<1000;i++)
{ //create marker
    markers.push(marker):
}
 markerclusterer = new MarkerClusterer(map, markers);
// then .. in another part .. i do .
for(var j=0;j<200;j++)
{
markers[j].setVisible(false);
}
markerclusterer.draw();

問題 ::

200個のマーカーを非表示にしますが、クラスターアイコンではまだ..

つまり..(クラスターアイコンに表示されている数値を計算すると= 1000)。しかし、実際には 800 個のマークが表示され、200 個が非表示になっています)。

クラスターアイコンの作り方=800のみ。..thnx

4

1 に答える 1

4

ループが終了したら、.repaint() メソッドを追加して、カウンターを更新します。しかし、主なことは、これらの表示/非表示マーカーを、マーカーの非表示/表示で自動的にmarkerclustererオブジェクトから追加/削除する必要があることです

var markers=[], markerclusterer;

markerclusterer = new MarkerClusterer(map, []);

for(var i=0;i<1000;i++)
{ 
    //create marker
    markerclusterer.addMarker(marker, true);

    google.maps.event.addListener(marker, 'visible_changed', function(){
        if ( marker.getVisible() ) {
            markerclusterer.addMarker(marker, true);
        } else {
            markerclusterer.removeMarker(marker, true);
        }                   
    });
}
// then .. in another part .. i do .
for(var j=0;j<200;j++)
{
    markers[j].setVisible(false);
}
markerclusterer.repaint();

それが誰かを助けることを願っています。

于 2012-11-21T08:03:14.763 に答える