diff options
author | kevin <kevin.li@mapbox.com> | 2019-06-26 15:15:02 +0800 |
---|---|---|
committer | kevin <kevin.li@mapbox.com> | 2019-06-26 15:16:49 +0800 |
commit | 156de990ec9998e13765183a5983339581ef3290 (patch) | |
tree | 258e1ff64b9136d29486a943915d9d60c4058b32 | |
parent | 32de702795296dd7357e531dfa44079a1828cbe7 (diff) | |
download | qtlocation-mapboxgl-156de990ec9998e13765183a5983339581ef3290.tar.gz |
Fix review comments.
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java | 22 |
1 files changed, 13 insertions, 9 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 7c297bd0f4..ad6e2a0638 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 @@ -9,12 +9,14 @@ import android.support.annotation.Keep; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import com.mapbox.geojson.Point; +import com.mapbox.geojson.shifter.CoordinateShifterManager; import com.mapbox.mapboxsdk.R; import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.utils.MathUtils; +import java.util.List; + /** * Resembles the position, angle, zoom and tilt of the user's viewpoint. */ @@ -170,7 +172,7 @@ public final class CameraPosition implements Parcelable { * Builder for composing CameraPosition objects. */ public static final class Builder { - private boolean needShift = true; + private boolean needShift = false; private double bearing = -1; @Nullable private LatLng target = null; @@ -223,8 +225,6 @@ public final class CameraPosition implements Parcelable { */ public Builder(@Nullable CameraUpdateFactory.CameraPositionUpdate update) { super(); - // The location in update is shifted before, so no need to shift again. - needShift = false; if (update != null) { bearing = update.getBearing(); target = update.getTarget(); @@ -240,8 +240,6 @@ public final class CameraPosition implements Parcelable { */ public Builder(@Nullable CameraUpdateFactory.ZoomUpdate update) { super(); - // The location in update is shifted before, so no need to shift again. - needShift = false; if (update != null) { this.zoom = update.getZoom(); } @@ -276,6 +274,7 @@ public final class CameraPosition implements Parcelable { */ @NonNull public Builder target(LatLng location) { + needShift = true; this.target = location; return this; } @@ -319,10 +318,15 @@ public final class CameraPosition implements Parcelable { */ public CameraPosition build() { if (needShift && target != null) { - Point point = Point.fromLngLat(target.getLongitude(), target.getLatitude()); - this.target = new LatLng(point.latitude(), point.longitude()); + //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(target, zoom, tilt, bearing); + return new CameraPosition(this.target, zoom, tilt, bearing); } } } |