From 63710ffdac09dc00e034ba775cb68929d487a6b6 Mon Sep 17 00:00:00 2001 From: Erlend Fagerheim Date: Sun, 16 Aug 2015 11:48:46 +0200 Subject: removing annotations in mapview, not only in nativemapview --- .../src/main/java/com/mapbox/mapboxgl/views/MapView.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'android') diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java index 20e7dfe56a..d1ed8923d9 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/MapView.java @@ -59,6 +59,7 @@ import org.apache.commons.validator.routines.UrlValidator; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Date; +import java.util.Iterator; import java.util.List; // Custom view that shows a Map @@ -371,13 +372,24 @@ public class MapView extends FrameLayout implements LocationListener { return polygons; } + private void removeAnnotationsWithId(long annotationId){ + for (Iterator iterator = annotations.iterator(); iterator.hasNext();) { + Annotation annotation = iterator.next(); + if (annotation.getId() == annotationId) { + iterator.remove(); + } + } + } + public void removeAnnotation(Annotation annotation) { long id = annotation.getId(); mNativeMapView.removeAnnotation(id); + annotations.remove(annotation); } public void removeAnnotation(long annotationId) { mNativeMapView.removeAnnotation(annotationId); + removeAnnotationsWithId(annotationId); } public void removeAnnotations() { @@ -387,6 +399,7 @@ public class MapView extends FrameLayout implements LocationListener { ids[i] = id; } mNativeMapView.removeAnnotations(ids); + annotations.clear(); } // -- cgit v1.2.1