Usuń znacznik z mapy GoogleMap

W nowym interfejsie Google Maps API dla Androida możemydodaj znacznik, ale nie ma sposobu na (łatwe) usunięcie jednego.

Moim rozwiązaniem jest trzymanie znaczników na mapie i przerysowywanie mapy, gdy chcę usunąć znacznik, ale nie jest to bardzo wydajne.

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);
      }
    }
  });
}

Czy ktoś ma lepszy pomysł?

questionAnswers(9)

yourAnswerToTheQuestion