Agregué un mapa sobre la actividad de los fragmentos y agregué varios marcadores usando la función addMarker, pero puedo eliminar todos los marcadores, recibo una notificación para diferentes listas de marcadores,
Ahora quiero eliminar todos los marcadores y agregar uno nuevo.
una forma de mantener todos los marcadores en la lista y eliminarlos uno por uno, (marker.remove ())
¿Hay alguna manera mejor de borrar todos los marcadores?
android
google-maps-android-api-2
Ashish Kasma
fuente
fuente
Respuestas:
Si desea borrar "todos los marcadores, superposiciones y polilíneas del mapa", utilice
clear()
en suGoogleMap
.fuente
Marker
los objetos por separado del mapa, usted tiene que dejar de lado aquellos.clear()
los eliminará visualmente .clear()
función no restablecerá losMarker
ID. Básicamente, no lo volverá a obtenerm0
por nuevasMarker
adiciones.Si no desea borrar polilíneas y solo es necesario eliminar los marcadores, siga los pasos a continuación.
Primero cree una nueva matriz de marcadores como a continuación
List<Marker> AllMarkers = new ArrayList<Marker>();
Luego, cuando agregue el marcador en los mapas de Google, agréguelos también a la matriz de marcadores (sus AllMarkers en este ejemplo)
for(int i=0;i<places.length();i++){ LatLng location = new LatLng(Lat,Long); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(location); markerOptions.title("Your title"); Marker mLocationMarker = Map.addMarker(markerOptions); // add the marker to Map AllMarkers.add(mLocationMarker); // add the marker to array }
luego, finalmente, llame al método siguiente para eliminar todos los marcadores a la vez
private void removeAllMarkers() { for (Marker mLocationMarker: AllMarkers) { mLocationMarker.remove(); } AllMarkers.clear(); }
llamar desde cualquier lugar para eliminar todos los marcadores
removeAllMarkers();
Encontré esta solución cuando estaba buscando una forma de eliminar solo los marcadores del mapa sin borrar las polilíneas. Espero que esto también te ayude.
fuente