From 4d8625b13ca32dc8c9ca9484db663bf3aba52a6d Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 19 May 2017 20:38:23 +0200 Subject: [android] - correct bearing conversion when animating the map with jumpTo, easeTo and animateTo. (#9050) --- platform/android/src/map/camera_position.cpp | 2 +- platform/android/src/native_map_view.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/android/src/map/camera_position.cpp b/platform/android/src/map/camera_position.cpp index aa5873b273..f059fbd413 100644 --- a/platform/android/src/map/camera_position.cpp +++ b/platform/android/src/map/camera_position.cpp @@ -12,7 +12,7 @@ jni::Object CameraPosition::New(jni::JNIEnv &env, mbgl::CameraOp center.wrap(); // convert bearing, core ranges from [−π rad, π rad], android from 0 to 360 degrees - double bearing_degrees = options.angle.value_or(0) * 180.0 / M_PI; + double bearing_degrees = (options.angle.value_or(0) * 180.0 / M_PI) + 180; while (bearing_degrees > 360) { bearing_degrees -= 360; } diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 1e2464f1a0..3dbfd6809a 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -385,7 +385,7 @@ void NativeMapView::moveBy(jni::JNIEnv&, jni::jdouble dx, jni::jdouble dy, jni:: void NativeMapView::jumpTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jdouble pitch, jni::jdouble zoom) { mbgl::CameraOptions options; if (angle != -1) { - options.angle = (-angle * M_PI) / 180; + options.angle = (angle - 180 * M_PI) / 180; } options.center = mbgl::LatLng(latitude, longitude); options.padding = insets; @@ -402,7 +402,7 @@ void NativeMapView::jumpTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitu void NativeMapView::easeTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jlong duration, jni::jdouble pitch, jni::jdouble zoom, jni::jboolean easing) { mbgl::CameraOptions cameraOptions; if (angle != -1) { - cameraOptions.angle = (-angle * M_PI) / 180; + cameraOptions.angle = (angle - 180 * M_PI) / 180; } cameraOptions.center = mbgl::LatLng(latitude, longitude); cameraOptions.padding = insets; @@ -426,7 +426,7 @@ void NativeMapView::easeTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitu void NativeMapView::flyTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jlong duration, jni::jdouble pitch, jni::jdouble zoom) { mbgl::CameraOptions cameraOptions; if (angle != -1) { - cameraOptions.angle = (-angle * M_PI) / 180 ; + cameraOptions.angle = (angle - 180 * M_PI / 180); } cameraOptions.center = mbgl::LatLng(latitude, longitude); cameraOptions.padding = insets; -- cgit v1.2.1