web-dev-qa-db-ja.com

Google Maps Api v3-クラスターアイコンを削除する方法は?

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

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

しかし、繰り返しになりますが、クラスターのアイコンはまだ地図上にあります。

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

22
user198003

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

0
Crag

これはそれを行う正しい方法です:

// 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

48
HoffZ

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

markerCluster = new MarkerClusterer(map);
3
Sergey Serduk

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

_ markers.Push(marker);
_

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

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

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

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

無視を非表示にしてrepaint()を呼び出すと、すべてのクラスターアイコンが非表示になります。

0
Sergey Romanov