マップからすべてのクラスターアイコン(クラスターマーカー)を削除するにはどうすればよいですか?次のようなアドバイスを試してみました:
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();
しかし、繰り返しになりますが、クラスターのアイコンはまだ地図上にあります。
これらのクラスターアイコンをマップから削除するには、他に何をする必要がありますか?助けてください...
各マーカーを繰り返し処理し、そのマーカーのマップをnullに設定します。これにより、マーカーがマップから削除されます。
これはそれを行う正しい方法です:
// 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
私も同じ問題を抱えていました。初期化中にMarkerClustererを1回だけ宣言することで、これを修正しました。
markerCluster = new MarkerClusterer(map);
これが私がすることです。多くのマーカーがありますが、ヒートマップに切り替えるときに、すべてのマーカーとクラスターを削除したいと思います。マーカーを作成したら、それをグローバルマーカー配列に追加します
_ markers.Push(marker);
_
私はこのようにクラスターを定義します
_markerCluster = new MarkerClusterer(map, markers);
markerCluster.setIgnoreHidden(true);
_
ボタンをクリックしてヒートマップを表示すると
_$.each(markers, function(k, v){
v.setVisible(false);
});
markerCluster.repaint();
_
無視を非表示にしてrepaint()
を呼び出すと、すべてのクラスターアイコンが非表示になります。