2010-11-22 71 views
18

マップからすべてのクラスタアイコン(クラスタマーカー)を削除するにはどうすればよいですか?以下のようなアドバイスをしようと試み:GoogleマップApi v3 - クラスタアイコンの削除方法

Google Maps API v3: How to remove all markers?

...しかし、それは働いていませんでした。

これを達成する方法を教えてください。

ありがとうございます!

UPDATE(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 = []; 

でなく、クラスタアイコンが上STILです地図。

も私のような事をしようと試み:

markerClusterer.clearMarkers(); 

など

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

をしかし、再び、クラスタのアイコンがマップ上で、まだそこにあります。

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

答えて

0

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

+1

はい、markersClustと[i]を.setMap(NULL); markersClust = new Array();私はマップからマーカーを削除しましたが、クラスタのマークはまだそこにあります... – user198003

+0

クラスタを表示するために他のツールを使用していますか? gmv3にはクラスターが組み込まれているとは思わないでください。使用している他のjsが教えてくれれば、助けになるかもしれません。 – Crag

+0

私はhttp://gmaps-utility-library-dev.googlecode.com/svn/tags/markerclusterer/も使用しています。投稿の更新部分を確認してください。 – user198003

2

私も同じ問題がありました。

markerCluster = new MarkerClusterer(map); 
+1

markerCluster.clearMarkers(); –

0

これは私が行っていることです。私はMarkerClustererを初期化中に一度だけ宣言することで修正しました。私は多くのマーカーを持っていますが、ヒートマップに切り替えると、すべてのマーカーとクラスタラーを削除したいと思います。私はマーカーを作成すると、私はグローバルマーカー配列

markers.push(marker); 

に追加し、私はヒートマップ

repaint()を無視すると呼び出された
$.each(markers, function(k, v){ 
    v.setVisible(false); 
}); 
markerCluster.repaint(); 

を表示するボタンをクリックすると、私はこの

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

ようclustereを定義します非表示にすると、すべてのクラスタアイコンが非表示になります。

35

これはそれを行うための正しい方法は次のとおりです。

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

+0

私はマーカーをまったくループする必要はありませんでした。私はちょうど 'markerClusterer.clearMarkers()'と呼んでいます。 – hellatan

+1

はい、@hellatan、clearMarkers()でマーカーを隠すことができます。しかし、彼らはまだ記憶に残るでしょう。 clearMarkers()を呼び出して後で配列にマーカーを追加すると、「新しいMarkerClusterer(マップ、マーカー)」を初期化すると古いマーカーが再び表示されます。そのため、マーカーを削除する場合は配列の設定を解除してください。 – HoffZ

+0

ああ、明確化のために感謝@HoffZ。私は先週マップapiで遊び始めたので、この時点で私の知識はかなり制限されています。 – hellatan

関連する問題