summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkevin <kevin.li@mapbox.com>2019-07-03 17:57:04 +0800
committerkevin <kevin.li@mapbox.com>2019-07-03 17:57:04 +0800
commit73b7fc47e1b57c50ed65fa916823e04209d71fd3 (patch)
tree1c6d7e34de3cb4f9e1f31999c8b3d3b99255ddf2
parenta19b2823835ebbd626c38b2e4283b80333e01bfa (diff)
downloadqtlocation-mapboxgl-upstream/kl-location-shift.tar.gz
Add getShiftedTarget method for CameraPositionupstream/kl-location-shift
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java29
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java9
2 files changed, 23 insertions, 15 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java
index ad6e2a0638..1326983753 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java
@@ -87,6 +87,24 @@ public final class CameraPosition implements Parcelable {
}
/**
+ * Do shift for target location and get the shifted target.
+ *
+ * @return the shifted target.
+ */
+ public LatLng getShiftedTarget() {
+ if (target != null) {
+ //todo: add check after https://github.com/mapbox/mapbox-java/issues/1057 is resolved.
+ List<Double> shifted = CoordinateShifterManager.getCoordinateShifter()
+ .shiftLonLat(target.getLongitude(), target.getLatitude());
+ if (shifted != null && shifted.size() > 1) {
+ return new LatLng(shifted.get(1),shifted.get(0));
+ }
+ }
+ return new LatLng();
+
+ }
+
+ /**
* Describe the kinds of special objects contained in this Parcelable's
* marshalled representation.
*
@@ -172,7 +190,6 @@ public final class CameraPosition implements Parcelable {
* Builder for composing CameraPosition objects.
*/
public static final class Builder {
- private boolean needShift = false;
private double bearing = -1;
@Nullable
private LatLng target = null;
@@ -274,7 +291,6 @@ public final class CameraPosition implements Parcelable {
*/
@NonNull
public Builder target(LatLng location) {
- needShift = true;
this.target = location;
return this;
}
@@ -317,15 +333,6 @@ public final class CameraPosition implements Parcelable {
* @return CameraPosition
*/
public CameraPosition build() {
- if (needShift && target != null) {
- //todo: add check after https://github.com/mapbox/mapbox-java/issues/1057 is resolved.
- List<Double> shifted = CoordinateShifterManager.getCoordinateShifter()
- .shiftLonLat(target.getLongitude(), target.getLatitude());
- if (shifted != null && shifted.size() > 1) {
- target.setLongitude(shifted.get(0));
- target.setLatitude(shifted.get(1));
- }
- }
return new CameraPosition(this.target, zoom, tilt, bearing);
}
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
index 1961cf0450..d58a4a2f79 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
@@ -108,7 +108,8 @@ public final class Transform implements MapView.OnCameraDidChangeListener {
if (isValidCameraPosition(cameraPosition)) {
cancelTransitions();
cameraChangeDispatcher.onCameraMoveStarted(OnCameraMoveStartedListener.REASON_API_ANIMATION);
- nativeMap.jumpTo(cameraPosition.target, cameraPosition.zoom, cameraPosition.tilt, cameraPosition.bearing);
+ nativeMap.jumpTo(cameraPosition.getShiftedTarget(), cameraPosition.zoom, cameraPosition.tilt,
+ cameraPosition.bearing);
cameraChangeDispatcher.onCameraIdle();
invalidateCameraPosition();
handler.post(new Runnable() {
@@ -134,8 +135,8 @@ public final class Transform implements MapView.OnCameraDidChangeListener {
cameraCancelableCallback = callback;
}
mapView.addOnCameraDidChangeListener(this);
- nativeMap.easeTo(cameraPosition.target, cameraPosition.zoom, cameraPosition.bearing, cameraPosition.tilt,
- durationMs, easingInterpolator);
+ nativeMap.easeTo(cameraPosition.getShiftedTarget(), cameraPosition.zoom, cameraPosition.bearing,
+ cameraPosition.tilt, durationMs, easingInterpolator);
}
}
@@ -154,7 +155,7 @@ public final class Transform implements MapView.OnCameraDidChangeListener {
cameraCancelableCallback = callback;
}
mapView.addOnCameraDidChangeListener(this);
- nativeMap.flyTo(cameraPosition.target, cameraPosition.zoom, cameraPosition.bearing,
+ nativeMap.flyTo(cameraPosition.getShiftedTarget(), cameraPosition.zoom, cameraPosition.bearing,
cameraPosition.tilt, durationMs);
}
}