[android] - correct bearing conversion when animating the map with jumpTo, easeTo and animateTo. (#9050)
This commit is contained in:
@@ -12,7 +12,7 @@ jni::Object<CameraPosition> 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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user