In der neuen Google Maps-API für Android können wir einen Marker hinzufügen , aber es gibt keine Möglichkeit, einen (einfach) zu entfernen.
Meine Lösung besteht darin, die Markierungen in einer Karte zu belassen und die Karte neu zu zeichnen, wenn ich eine Markierung entfernen möchte, dies ist jedoch nicht sehr effizient.
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);
}
}
});
}
Hat jemand eine bessere Idee?