88 votes

Effacer les marqueurs de Google Map dans Android

J'ai ajouté une carte sur l'activité fragment et ajouté plusieurs marqueurs en utilisant la fonction addMarker, mais je suis capable de supprimer tous les marqueurs, je reçois une notification pour différentes listes de marqueurs,

Maintenant, je veux supprimer tous les marqueurs et en ajouter un nouveau.

une façon de garder tous les marqueurs dans la liste et de les supprimer un par un, (marker.remove())

Y a-t-il un meilleur moyen d'effacer tous les marqueurs ?

210voto

CommonsWare Points 402670

Si vous voulez effacer "tous les marqueurs, superpositions et polylignes de la carte", utiliser clear() sur votre GoogleMap .

7voto

Si vous ne souhaitez pas effacer les polylignes et que seuls les marqueurs doivent être supprimés, suivez les étapes ci-dessous.

Créez d'abord un nouveau tableau de marqueurs comme ci-dessous

List<Marker> AllMarkers = new ArrayList<Marker>();

Ensuite, lorsque vous ajoutez les marqueurs sur les cartes Google, vous les ajoutez également au tableau des marqueurs (AllMarkers dans cet exemple).

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

                }

puis finalement appeler la méthode ci-dessous pour supprimer tous les marqueurs en une seule fois

 private void removeAllMarkers() {
        for (Marker mLocationMarker: AllMarkers) {
            mLocationMarker.remove();
        }
        AllMarkers.clear();

    }

appeler de n'importe où pour supprimer tous les marqueurs

removeAllMarkers();

J'ai trouvé cette solution lorsque je cherchais un moyen de supprimer uniquement les marqueurs de carte sans effacer les polylignes. J'espère que cela vous aidera aussi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X