Dodałem mapę na aktywność fragmentu i dodałem kilka markerów za pomocą funkcji addMarker, ale jestem w stanie usunąć wszystkie markery, otrzymuję powiadomienie o innej liście markerów,
Teraz chcę usunąć wszystkie znaczniki i dodać nowy.
jeden sposób na zachowanie wszystkich znaczników na liście i usuwanie ich jeden po drugim, (marker.remove ())
Czy jest lepszy sposób, aby usunąć wszystkie znaczniki.
android
google-maps-android-api-2
Ashish Kasma
źródło
źródło
Odpowiedzi:
Jeśli chcesz usunąć „wszystkie znaczniki, nakładki i polilinie z mapy”, użyj
clear()
na swoimGoogleMap
.źródło
Marker
obiektów oddzielnie od mapy, ty musisz puścić tych.clear()
usunie je wizualnie .clear()
funkcja nie zresetujeMarker
identyfikatorów. Zasadniczo nie dostanieszm0
ponownie za noweMarker
dodanie.Jeśli nie chcesz czyścić polilinii i chcesz usunąć tylko znaczniki, wykonaj poniższe czynności.
Najpierw utwórz nową tablicę znaczników, jak poniżej
List<Marker> AllMarkers = new ArrayList<Marker>();
Następnie, gdy dodasz znacznik na mapach Google, dodaj je również do tablicy Marker (w tym przykładzie wszystkieMarkery)
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 }
następnie w końcu wywołaj poniższą metodę, aby usunąć wszystkie znaczniki naraz
private void removeAllMarkers() { for (Marker mLocationMarker: AllMarkers) { mLocationMarker.remove(); } AllMarkers.clear(); }
zadzwoń z dowolnego miejsca, aby usunąć wszystkie znaczniki
removeAllMarkers();
Znalazłem to rozwiązanie, gdy szukałem sposobu na usunięcie tylko znaczników mapy bez czyszczenia polilinii. Mam nadzieję, że to też ci pomoże.
źródło