フラグメントアクティビティにマップを追加し、addMarker関数を使用していくつかのマーカーを追加しましたが、すべてのマーカーを削除できます。マーカーのさまざまなリストに関する通知を受け取ります。
今、私はすべてのマーカーを削除し、新しいものを追加したいと思います。
すべてのマーカーをリストに保持し、1つずつ削除する1つの方法(marker.remove())
すべてのマーカーをクリアするためのより良い方法はありますか?
フラグメントアクティビティにマップを追加し、addMarker関数を使用していくつかのマーカーを追加しましたが、すべてのマーカーを削除できます。マーカーのさまざまなリストに関する通知を受け取ります。
今、私はすべてのマーカーを削除し、新しいものを追加したいと思います。
すべてのマーカーをリストに保持し、1つずつ削除する1つの方法(marker.remove())
すべてのマーカーをクリアするためのより良い方法はありますか?
回答:
「マップからすべてのマーカー、オーバーレイ、およびポリライン」をクリアする場合は、でを使用clear()
しますGoogleMap
。
Marker
clear()
clear()
関数はMarker
IDをリセットしないことに注意してください。基本的に、あなたはm0
新しいMarker
追加のために再び得ることはありません。
ポリラインをクリアせず、マーカーのみを削除する必要がある場合は、以下の手順に従ってください。
まず、以下のような新しいマーカー配列を作成します
List<Marker> AllMarkers = new ArrayList<Marker>();
次に、グーグルマップにマーカーを追加するときに、それらをマーカー配列(この例ではAllMarkers)にも追加します。
for(int i=0;i<places.length();i++){
LatLng location = new LatLng(Lat,Long);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(location);
markerOptions.title("Your title");
Marker mLocationMarker = Map.addMarker(markerOptions); // add the marker to Map
AllMarkers.add(mLocationMarker); // add the marker to array
}
次に、最後に以下のメソッドを呼び出して、すべてのマーカーを一度に削除します
private void removeAllMarkers() {
for (Marker mLocationMarker: AllMarkers) {
mLocationMarker.remove();
}
AllMarkers.clear();
}
どこからでも電話してすべてのマーカーを削除する
removeAllMarkers();
ポリラインをクリアせずにマップマーカーのみを削除する方法を探していたときに、この解決策を見つけました。これがあなたにも役立つことを願っています。