Skip to content
This repository was archived by the owner on Aug 8, 2023. It is now read-only.

Commit 4d8625b

Browse files
authored
[android] - correct bearing conversion when animating the map with jumpTo, easeTo and animateTo. (#9050)
1 parent b9d3ccc commit 4d8625b

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

platform/android/src/map/camera_position.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jni::Object<CameraPosition> CameraPosition::New(jni::JNIEnv &env, mbgl::CameraOp
1212
center.wrap();
1313

1414
// convert bearing, core ranges from [−π rad, π rad], android from 0 to 360 degrees
15-
double bearing_degrees = options.angle.value_or(0) * 180.0 / M_PI;
15+
double bearing_degrees = (options.angle.value_or(0) * 180.0 / M_PI) + 180;
1616
while (bearing_degrees > 360) {
1717
bearing_degrees -= 360;
1818
}

platform/android/src/native_map_view.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ void NativeMapView::moveBy(jni::JNIEnv&, jni::jdouble dx, jni::jdouble dy, jni::
385385
void NativeMapView::jumpTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jdouble pitch, jni::jdouble zoom) {
386386
mbgl::CameraOptions options;
387387
if (angle != -1) {
388-
options.angle = (-angle * M_PI) / 180;
388+
options.angle = (angle - 180 * M_PI) / 180;
389389
}
390390
options.center = mbgl::LatLng(latitude, longitude);
391391
options.padding = insets;
@@ -402,7 +402,7 @@ void NativeMapView::jumpTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitu
402402
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) {
403403
mbgl::CameraOptions cameraOptions;
404404
if (angle != -1) {
405-
cameraOptions.angle = (-angle * M_PI) / 180;
405+
cameraOptions.angle = (angle - 180 * M_PI) / 180;
406406
}
407407
cameraOptions.center = mbgl::LatLng(latitude, longitude);
408408
cameraOptions.padding = insets;
@@ -426,7 +426,7 @@ void NativeMapView::easeTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitu
426426
void NativeMapView::flyTo(jni::JNIEnv&, jni::jdouble angle, jni::jdouble latitude, jni::jdouble longitude, jni::jlong duration, jni::jdouble pitch, jni::jdouble zoom) {
427427
mbgl::CameraOptions cameraOptions;
428428
if (angle != -1) {
429-
cameraOptions.angle = (-angle * M_PI) / 180 ;
429+
cameraOptions.angle = (angle - 180 * M_PI / 180);
430430
}
431431
cameraOptions.center = mbgl::LatLng(latitude, longitude);
432432
cameraOptions.padding = insets;

0 commit comments

Comments
 (0)