In der neuen Google Maps API für Android können wir add a marker, aber es gibt keine Möglichkeit, (einfach) zu entfernen.Entfernen Sie einen Marker von einer GoogleMap
Meine Lösung ist, die Markierungen in einer Karte zu behalten und die Karte neu zu zeichnen, wenn ich einen Marker entfernen möchte, aber es ist 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?
Warum verwenden Sie ein Runnable(), um die Markierungen hinzufügen? – user3927312
Um es auf dem UI-Thread zu tun – Jonas