diff options
author | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-16 15:09:56 -0700 |
---|---|---|
committer | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-16 15:09:56 -0700 |
commit | 0df1d6482375693f8c341b55eaab4ddf7783a88c (patch) | |
tree | b6c9a8d5e649cf6be457154dc699d837f9f29284 /android | |
parent | 9e3f60756f6e70fa8f4b0d5827127bd404b1baf6 (diff) | |
download | qtlocation-mapboxgl-0df1d6482375693f8c341b55eaab4ddf7783a88c.tar.gz |
toggle removes all annotations. ready for polygon JNI #1716
Diffstat (limited to 'android')
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() |