基本的に、マップにマーカーを追加すると、新しいマーカーが返され、そこからマーカー ID を取得できます。
Marker m = map.addMarker(new MarkerOptions()
.position(new LatLng(lat,lon)));
String id = m.getId();
多くのマーカーがあり、1 つだけ削除したい場合、ID でマーカーを取得する方法はありますか?
基本的に、マップにマーカーを追加すると、新しいマーカーが返され、そこからマーカー ID を取得できます。
Marker m = map.addMarker(new MarkerOptions()
.position(new LatLng(lat,lon)));
String id = m.getId();
多くのマーカーがあり、1 つだけ削除したい場合、ID でマーカーを取得する方法はありますか?
問題は、マーカーIDが自動的に生成され、マーカーを個別に追跡するために使用できないことです。これを回避するために、いくつかの戦略が提案されています。1つは、ハッシュマップを使用してマーカーを追跡し、選択したキーを使用して特定のマーカーを見つけて削除することです。もう1つのアイデアは、スニペットなどのマーカーフィールドの1つをオーバーロードしてから、自分でキーを追加することです。たとえば、(Googleのサンプルコードを使用して)新しいマーカーを作成する場合は、独自のキー文字列をスニペットフィールドに入力できます。
mMap.addMarker(new MarkerOptions()
.position(MELBOURNE)
.title("Melbourne")
.snippet(KEY + "Population: 4,137,400"));
後で、を使用してそのキーを取得できます
String s = marker.getSnippet()
String key = s.substring(start, end)
次に、条件を使用して、特定のマーカーが一致する場合はそれを削除します。あるアプローチを実行するために必要なことによっては、別のアプローチよりも簡単で効率的です。
私は知っています、それは非常に遅いです。しかし今では、一意のTAGをマーカーに直接追加できます。
Marker marker = mMap.addMarker(markerOptions);
marker.setTag("");