diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-02-13 12:30:08 +0200 |
---|---|---|
committer | Ivo van Dongen <info@ivovandongen.nl> | 2017-02-13 12:30:08 +0200 |
commit | 690938679cdf37b11eea30d6dd78a77e2ccfcc3b (patch) | |
tree | 890eff5835907e57d1132fdae33a806be8af2688 | |
parent | 3423275ca65236706e931b1b7edc3627a722176c (diff) | |
download | qtlocation-mapboxgl-690938679cdf37b11eea30d6dd78a77e2ccfcc3b.tar.gz |
[android] set camera position
3 files changed, 30 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index c1f6afbda1..31a5d4046f 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -191,6 +191,12 @@ final class NativeMapView { private native void _moveBy(double dx, double dy); + void setCameraPosition(double angle, LatLng center, double pitch, double zoom) { + setCameraPosition(angle, center.getLatitude(), center.getLongitude(), pitch, zoom); + } + + private native void setCameraPosition(double angle, double latitude, double longitude, double pitch, double zoom); + @Deprecated void moveBy(double dx, double dy, long duration) { moveBy(dx, dy); diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 484e14b111..91f932ed2f 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -215,6 +215,27 @@ void NativeMapView::moveBy(jni::JNIEnv&, jni::jdouble dx, jni::jdouble dy) { map->moveBy({dx, dy}); } +void NativeMapView::setCameraPosition(JNIEnv&, jdouble angle, jdouble latitude, jdouble longitude, jdouble pitch, jdouble zoom) { + mbgl::CameraOptions cameraOptions; + + if (angle != -1) { + cameraOptions.angle = (-angle * M_PI) / 180; + } + + cameraOptions.center = mbgl::LatLng(latitude, longitude); + cameraOptions.padding = insets; + + if (pitch != -1) { + cameraOptions.pitch = pitch * M_PI / 180; + } + + if (zoom != -1) { + cameraOptions.zoom = zoom; + } + + map->jumpTo(cameraOptions); +} + jni::Object<LatLng> NativeMapView::getLatLng(JNIEnv& env) { mbgl::LatLng latLng = map->getLatLng(insets); return LatLng::New(env, latLng.latitude, latLng.longitude); @@ -806,6 +827,7 @@ void NativeMapView::registerNative(jni::JNIEnv& env) { METHOD(&NativeMapView::cancelTransitions, "cancelTransitions"), METHOD(&NativeMapView::setGestureInProgress, "setGestureInProgress"), METHOD(&NativeMapView::moveBy, "_moveBy"), + METHOD(&NativeMapView::setCameraPosition, "setCameraPosition"), METHOD(&NativeMapView::getLatLng, "_getLatLng"), METHOD(&NativeMapView::setLatLng, "setLatLng"), METHOD(&NativeMapView::setReachability, "setReachability"), diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index 185bb7b65c..ad7fbbc0a1 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -78,6 +78,8 @@ public: void moveBy(jni::JNIEnv&, jni::jdouble, jni::jdouble); + void setCameraPosition(JNIEnv& env, jdouble, jdouble, jdouble, jdouble, jdouble); + jni::Object<LatLng> getLatLng(JNIEnv&); void setLatLng(jni::JNIEnv&, jni::jdouble, jni::jdouble); |