From 0df1d6482375693f8c341b55eaab4ddf7783a88c Mon Sep 17 00:00:00 2001 From: Nicholas Hallahan Date: Thu, 16 Jul 2015 15:09:56 -0700 Subject: toggle removes all annotations. ready for polygon JNI #1716 --- .../main/java/com/mapbox/mapboxgl/views/MapView.java | 20 ++++++++++++++++++++ .../com/mapbox/mapboxgl/views/NativeMapView.java | 8 ++++++++ .../com/mapbox/mapboxgl/testapp/MainActivity.java | 6 +++--- 3 files changed, 31 insertions(+), 3 deletions(-) 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 9e4e6e6cf7..4a8ed42a54 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 @@ -32,6 +32,8 @@ import com.almeros.android.multitouch.gesturedetectors.TwoFingerGestureDetector; import com.mapbox.mapboxgl.annotations.Annotation; import com.mapbox.mapboxgl.annotations.Marker; import com.mapbox.mapboxgl.annotations.MarkerOptions; +import com.mapbox.mapboxgl.annotations.Polygon; +import com.mapbox.mapboxgl.annotations.PolygonOptions; import com.mapbox.mapboxgl.annotations.Polyline; import com.mapbox.mapboxgl.annotations.PolylineOptions; import com.mapbox.mapboxgl.geometry.LatLng; @@ -232,11 +234,29 @@ public class MapView extends SurfaceView { return polyline; } + public Polygon addPolygon(PolygonOptions polygonOptions) { + Polygon polygon = polygonOptions.getPolygon(); + Long id = mNativeMapView.addPolygon(polygon); + polygon.setId(id); + polygon.setMapView(this); + annotations.add(polygon); + return polygon; + } + public void removeAnnotation(Annotation annotation) { long id = annotation.getId(); mNativeMapView.removeAnnotation(id); } + public void removeAnnotation(long annotationId) { + mNativeMapView.removeAnnotation(annotationId); + } + + public void removeAnnotations() { + for (Annotation annotation : annotations) { + annotation.remove(); + } + } // // Property methods diff --git a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java index be1680abaf..ac4f571a72 100644 --- a/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java +++ b/android/java/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxgl/views/NativeMapView.java @@ -4,6 +4,7 @@ import android.graphics.PointF; import android.view.Surface; import com.mapbox.mapboxgl.annotations.Marker; +import com.mapbox.mapboxgl.annotations.Polygon; import com.mapbox.mapboxgl.annotations.Polyline; import com.mapbox.mapboxgl.geometry.LatLng; import com.mapbox.mapboxgl.geometry.LatLngZoom; @@ -225,6 +226,11 @@ class NativeMapView { return nativeAddPolyline(mNativeMapViewPtr, polyline); } + public long addPolygon(Polygon polygon) { + // NH TODO Throw exception if returns -1 + return nativeAddPolygon(mNativeMapViewPtr, polygon); + } + public void removeAnnotation(long id) { nativeRemoveAnnotation(mNativeMapViewPtr, id); } @@ -465,6 +471,8 @@ class NativeMapView { private native long nativeAddPolyline(long nativeMapViewPtr, Polyline polyline); + private native long nativeAddPolygon(long mNativeMapViewPtr, Polygon polygon); + private native void nativeRemoveAnnotation(long nativeMapViewPtr, long id); private native LatLng nativeGetLatLng(long nativeMapViewPtr); diff --git a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java index 9c1547febc..4c25e241e0 100644 --- a/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java +++ b/android/java/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxgl/testapp/MainActivity.java @@ -281,7 +281,7 @@ public class MainActivity extends ActionBarActivity { } else { if (mIsMarkersOn) { mIsMarkersOn = false; - removeMarkers(); + removeAnnotations(); } } } @@ -311,8 +311,8 @@ public class MainActivity extends ActionBarActivity { } } - private void removeMarkers() { - marker.remove(); + private void removeAnnotations() { + mMapFragment.getMap().removeAnnotations(); } // This class forwards location updates to updateLocation() -- cgit v1.2.1