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.
- Cómo inhabilitar edificios en 3D con la API de Google Maps para Android v2
- Obtención de latitud y longitud de latlng objeto en android
- Mensaje "Los servicios de Google Play se están actualizando" en SupportMapFragment cuando están en modo de publicación
- ¿Cuál es la forma sugerida de implementar superposiciones en v2 de la API de Google Maps para Android?
- Android: ¿La API de Google Maps sigue siendo gratuita?
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?
- ¿Cómo obtener resultados específicos del país en la API de Google Places para AutocompletePredictions en Android?
- ¿Cómo obtener todos los grandes almacenes presentes en una ciudad en Android con google lugares?
- Para incrustar google map para la aplicación de Android
- Obtener latitud y longitud utilizando código postal
- TileProvider método getTile - necesita traducir xyy a lat / long
- ¿Cuál es el enfoque correcto para crear una aplicación para Android?
- Obtener límites de mapa con Android Google Maps
- Google Maps no se muestra de repente en Android
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();
- Importación de la biblioteca de Facebook en Android Studio: No se pudo encontrar la propiedad 'ANDROID_BUILD_SDK_VERSION'
- Abrir y guardar archivos de Android en / desde el SDK de Google Drive