[android] - correct bearing conversion when animating the map with jumpTo, easeTo and animateTo. (#9050)

This commit is contained in:
Tobrun
2017-05-19 20:38:23 +02:00
committed by GitHub
parent b9d3ccc995
commit 4d8625b13c
2 changed files with 4 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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;