Dans la nouvelle API Google Maps pour Android, nous pouvons ajouter un marqueur , mais il n'y a aucun moyen d'en supprimer (facilement) un.
Ma solution est de garder les marqueurs dans une carte et de redessiner la carte lorsque je veux supprimer un marqueur, mais ce n'est pas très efficace.
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);
}
}
});
}
Quelqu'un a-t-il une meilleure idée?