summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-02-13 12:30:08 +0200
committerIvo van Dongen <info@ivovandongen.nl>2017-02-13 12:30:08 +0200
commit690938679cdf37b11eea30d6dd78a77e2ccfcc3b (patch)
tree890eff5835907e57d1132fdae33a806be8af2688
parent3423275ca65236706e931b1b7edc3627a722176c (diff)
downloadqtlocation-mapboxgl-690938679cdf37b11eea30d6dd78a77e2ccfcc3b.tar.gz
[android] set camera position
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java6
-rwxr-xr-xplatform/android/src/native_map_view.cpp22
-rwxr-xr-xplatform/android/src/native_map_view.hpp2
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);