varios studio quitar puntos ocultar marcar marcadores mapas google etiquetas eliminar como borrar agregar android google-maps

android - studio - ocultar marcadores google maps



Eliminar un marcador de un mapa de Google (9)

Agrega el marcador al mapa como este

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

Entonces podrás usar el método de quitar, eliminará solo ese marcador

markerName.remove();

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

Mi solución es mantener los marcadores en un mapa y volver a dibujar el mapa cuando quiero eliminar 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?


Crear una matriz con todos los marcadores al agregar en el mapa.

Más tarde, usa:

Marker temp = markers.get(markers.size() - 1); temp.remove();


Hacer una variable global para realizar un seguimiento del marcador

private Marker currentLocationMarker;

// Eliminar el marcador anterior

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

// Añadir marcador actualizado y mover 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();


La firma del método para addMarker es:

public final Marker addMarker (MarkerOptions options)

Por lo tanto, cuando agrega un marcador a un GoogleMap de GoogleMap al especificar las opciones para el marcador, debe guardar el objeto Marker que se devuelve (en lugar del objeto MarkerOptions que utilizó para crearlo). Este objeto te 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 Marker.setVisible(boolean) , si solo quieres ocultarlo temporalmente, puedes alternar la visibilidad del marcador llamando a Marker.setVisible(boolean) .


Solo una NOTA, algo que perdí horas buscando esta noche ...

Si decide retener un marcador por alguna razón, después de haberlo RETIRADO de un mapa ... getTag devolverá NULL, aunque los valores get restantes regresarán con los valores que usted estableció cuando se creó el marcador. .

El valor TAG se establece en NULL si alguna vez elimina un marcador, y luego intenta hacer referencia a él.

Me parece como un insecto...


para borrar todos los garabatos en el uso del mapa

map.clear()


si existe marcador, elimine el último marcador. si el marcador no existe crea un 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))); }


usa el siguiente código:

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { marker.remove(); return true; } });

una vez que haga clic en "un marcador" , puede eliminarlo.


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 hazlo visible más tarde cuando sea necesario.
2. Sin embargo, si desea eliminar todos los marcadores del mapa, use map.clear();
Nota: map.clear(); también eliminará Polylines, Circles etc.
3. Si no desea eliminar Polylines, Circles etc., utilice un bucle con la longitud del marcador (si tiene múltiples marcadores) para eliminarlos. Consulte el Ejemplo aquí O map.clear(); Visible falso Y no use map.clear(); En tal caso.