質問

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

Googleマップ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() 無視して隠されて呼ばれます。それはすべてのクラスターアイコンを隠します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top