Di Google Maps API baru untuk Android, kita dapat menambahkan penanda , tetapi tidak ada cara untuk (dengan mudah) menghapusnya.
Solusi saya adalah menyimpan penanda di peta dan menggambar ulang peta ketika saya ingin menghapus penanda, tetapi itu tidak terlalu efisien.
private final Map<String, MarkerOptions> mMarkers = new ConcurrentHashMap<String, MarkerOptions>();
private void add(String name, LatLng ll) {
final MarkerOptions marker = new MarkerOptions().position(ll).title(name);
mMarkers.put(name, marker);
runOnUiThread(new Runnable() {
@Override
public void run() {
mMap.addMarker(marker);
}
});
}
private void remove(String name) {
mMarkers.remove(name);
runOnUiThread(new Runnable() {
@Override
public void run() {
mMap.clear();
for (MarkerOptions item : mMarkers.values()) {
mMap.addMarker(item);
}
}
});
}
Apakah ada yang punya ide yang lebih baik?