21

基本的に、マップにマーカーを追加すると、新しいマーカーが返され、そこからマーカー ID を取得できます。

Marker m = map.addMarker(new MarkerOptions()
                            .position(new LatLng(lat,lon)));
String id = m.getId();

多くのマーカーがあり、1 つだけ削除したい場合、ID でマーカーを取得する方法はありますか?

4

5 に答える 5

22

問題は、マーカー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)

次に、条件を使用して、特定のマーカーが一致する場合はそれを削除します。あるアプローチを実行するために必要なことによっては、別のアプローチよりも簡単で効率的です。

于 2013-03-12T18:22:46.800 に答える
13

私は知っています、それは非常に遅いです。しかし今では、一意のTAGをマーカーに直接追加できます。

Marker marker = mMap.addMarker(markerOptions);
marker.setTag("");

地図マーカー TAG に関する Google Developers リンク

于 2018-09-06T06:17:14.740 に答える