22

マップからすべてのクラスター アイコン (クラスター マーカー) を削除するにはどうすればよいですか? 次のようなアドバイスを試してみました:

Google Maps API v3:すべてのマーカーを削除するには?

...しかし、うまくいきませんでした。

それを達成する方法を教えてもらえますか?

前もって感謝します!

更新 (2010-11-23)

マーカーは配列に格納されます

var markersClust = Array();

...そして追加されます(phpとの組み合わせ):

markersClust.push(marker_<?php echo $team["Team"]["id"]; ?>);

var markerClusterer = new MarkerClusterer(MyMap.map, markersClust, clusterOptions);

そしてそれはうまくいきます。

しかし、マップからそれらを削除することはできず、それが私を駆り立てます...

でマーカーを削除しようとしました(そして私はしました)

for ( var i=0; i < markersClust.length; i++) {
    markersClust[i].setMap(null);
}
markersClust = []; 

ただし、クラスター アイコンはマップ上に表示されたままです。

また、次のようなことを試しました:

markerClusterer.clearMarkers();

そして好き

MyMap.preventDefault();
MyMap.stopPropagation();
MyMap.clearMarkers();

ただし、クラスターのアイコンはマップ上にまだ表示されています。

これらのクラスター アイコンをマップから削除するには、他に何をする必要がありますか? 助けてください...

4

5 に答える 5

50

これは正しい方法です:

// Unset all markers
var i = 0, l = markers.length;
for (i; i<l; i++) {
    markers[i].setMap(null)
}
markers = [];

// Clears all clusters and markers from the clusterer.
markerClusterer.clearMarkers();

デモ: http://jsfiddle.net/HoffZ/gEzxx/

ドキュメント: https://googlemaps.github.io/js-marker-clusterer/docs/reference.html

于 2013-03-26T12:02:41.193 に答える
4

私も同じ問題を抱えていました。初期化中に MarkerClusterer を 1 回だけ宣言することで修正しました。

markerCluster = new MarkerClusterer(map);
于 2012-10-03T18:11:06.510 に答える
0

各マーカーを繰り返し処理し、そのマーカーのマップを null に設定します。これにより、マップからマーカーが削除されます。

于 2010-11-22T20:27:33.193 に答える
0

これが私がすることです。多くのマーカーがありますが、ヒートマップに切り替えると、すべてのマーカーとクラスタラーを削除したいと考えています。マーカーを作成するときに、それをグローバル マーカー配列に追加します

 markers.push(marker);

このようにクラスターを定義します

markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);

ボタンをクリックしてヒートマップを表示すると

$.each(markers, function(k, v){
    v.setVisible(false);
});
markerCluster.repaint();

repaint()ignore hidden で呼び出されると、すべてのクラスタ アイコンが非表示になります。

于 2013-01-21T13:13:51.303 に答える