Eliminar un marcador de un GoogleMap

En la nueva API de Google Maps para Android, podemos agregar un marcador , pero no hay manera de eliminarlo (fácilmente).

Mi solución es mantener los marcadores en un mapa y volver a dibujar el mapa cuando quiera quitar un marcador, pero no es muy eficiente.

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

¿Alguien tiene una idea mejor?

La firma del método para addMarker es:

 public final Marker addMarker (MarkerOptions options) 

Por lo tanto, cuando agrega un marcador a un GoogleMap especificando las opciones para el marcador, debe guardar el objeto Marker que se devuelve (en lugar del objeto MarkerOptions que utilizó para crearlo). Este objeto le permite cambiar el estado del marcador más adelante. Cuando haya terminado con el marcador, puede llamar a Marker.remove() para eliminarlo del mapa.

Como aparte, si sólo desea ocultarlo temporalmente, puede cambiar la visibilidad del marcador llamando a Marker.setVisible(boolean) .

Borrar todos los garabatos en el mapa

 map.clear() 

Añadir el marcador al mapa como este

 Marker markerName = map.addMarker(new MarkerOptions().position(latLng).title("Title")); 

A continuación, podrá utilizar el método remove, eliminará sólo ese marcador

 markerName.remove(); 

1. Si desea eliminar un marcador, puede hacerlo como marker.remove(); Alternativamente también puede ocultar el marcador en lugar de eliminarlo como

  marker.setVisible(false); 

Y hacerla visible más tarde cuando sea necesario.
2. Sin embargo, si desea eliminar todos los marcadores del mapa Utilice map.clear();
Nota: map.clear(); También eliminará Polylines, Circles etc.
3. Si no desea eliminar Polylines, Circles etc., utilice un bucle a la longitud del marcador (si tiene marcadores múltiples) para eliminarlos. Compruebe el ejemplo aquí o establezca que son visibles falsos Y no utilice map.clear(); En tal caso.

Si el marcador existe, quite el último marcador. Si el marcador no existe crear el marcador actual

 Marker currentMarker = null; if (currentMarker!=null) { currentMarker.remove(); currentMarker=null; } if (currentMarker==null) { currentMarker = mMap.addMarker(new MarkerOptions().position(arg0). icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))); } 

Hacer una variable global para realizar un seguimiento del marcador

 private Marker currentLocationMarker; 

// Eliminar marcador antiguo

  if (null != currentLocationMarker) { currentLocationMarker.remove(); } 

// Añade marcador actualizado y mueve la cámara

  currentLocationMarker = mMap.addMarker(new MarkerOptions().position( new LatLng(getLatitude(), getLongitude())) .title("You are now Here").visible(true) .icon(Utils.getMarkerBitmapFromView(getActivity(), R.drawable.auto_front)) .snippet("Updated Location")); currentLocationMarker.showInfoWindow(); 

Cree la matriz con todos los marcadores en agregar en el mapa.

Después, utilice:

 Marker temp = markers.get(markers.size() - 1); temp.remove(); 
  • android + google map api v2 + ubicación actual
  • Cómo agregar su aplicación a la lista "compartir este lugar" en Google maps
  • Android studio v0.3.2, gradle, google maps v2.0 No encontró la clase "com.google.android.gms.maps.MapFragment
  • GetMap () devuelve null en Android con Google Maps API v2
  • Android google maps v2 problemas de rendimiento
  • Actividad de Map de Android se bloquea al salir Actividad
  • Controles de zoom que no se muestran cuando se utiliza MapView con fill_parent
  • ¿Cómo puedo recibir una notificación cuando el usuario presiona el botón Centro en mi ubicación en Google Maps v2 para Android API
  • En google maps V2 ... fragment.getMap () devuelve null
  • ¿Cómo puedo agregar un botón a la ventana de información de un marcador?
  • Intento de obtener la longitud de la matriz nula en google maps V2 android app
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.