diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-10-10 23:51:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-10 23:51:56 +0200 |
commit | 5bbd27eb8fdf99098970fd973e1a945e240df949 (patch) | |
tree | 54d1dbafebb630baad5580df94a2e2da083a5f53 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java | |
parent | e598bbfa7c29ad3a384e157b504c4509f1fcdbb5 (diff) | |
download | qtlocation-mapboxgl-5bbd27eb8fdf99098970fd973e1a945e240df949.tar.gz |
[android] - correct degrees/radiants integration into transform.cpp, fixes camera position restoration from core and missing return value occurrence. (#6641)
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraPosition.java | 37 |
1 files changed, 26 insertions, 11 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 4253ff23d7..c6c64cfa65 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 @@ -158,7 +158,7 @@ public final class CameraPosition implements Parcelable { double lat = typedArray.getFloat(R.styleable.MapView_center_latitude, 0.0f); double lng = typedArray.getFloat(R.styleable.MapView_center_longitude, 0.0f); this.target = new LatLng(lat, lng); - this.tilt = Math.toRadians(typedArray.getFloat(R.styleable.MapView_tilt, 0.0f)); + this.tilt = typedArray.getFloat(R.styleable.MapView_tilt, 0.0f); this.zoom = typedArray.getFloat(R.styleable.MapView_zoom, 0.0f); } } @@ -192,16 +192,19 @@ public final class CameraPosition implements Parcelable { /** * Create Builder from an existing array of doubles. + * <p> + * These values conform to map.ccp representation of a camera position. + * </p> * - * @param values Values containing target, bearing, tilt and zoom + * @param nativeCameraValues Values containing target, bearing, tilt and zoom */ - public Builder(double[] values) { + public Builder(double[] nativeCameraValues) { super(); - if (values != null && values.length == 5) { - this.target = new LatLng(values[0], values[1]); - this.bearing = Math.toDegrees(values[2]); - this.tilt = Math.toRadians(values[3]); - this.zoom = (float) values[4]; + if (nativeCameraValues != null && nativeCameraValues.length == 5) { + target(new LatLng(nativeCameraValues[0], nativeCameraValues[1])); + bearing(-nativeCameraValues[2]); + tilt(nativeCameraValues[3]); + zoom((float) nativeCameraValues[4]); } } @@ -212,7 +215,16 @@ public final class CameraPosition implements Parcelable { * @return Builder */ public Builder bearing(double bearing) { - this.bearing = bearing; + double direction = bearing; + + while (direction > 360) { + direction -= 360; + } + while (direction < 0) { + direction += 360; + } + + this.bearing = direction; return this; } @@ -237,13 +249,16 @@ public final class CameraPosition implements Parcelable { } /** - * Set the tilt + * Set the tilt in degrees + * <p> + * value is clamped to 0 and 60. + * <p/> * * @param tilt Tilt value * @return Builder */ public Builder tilt(double tilt) { - this.tilt = (float) Math.toRadians(MathUtils.clamp(tilt, MapboxConstants.MINIMUM_TILT, MapboxConstants.MAXIMUM_TILT)); + this.tilt = (float) MathUtils.clamp(tilt, MapboxConstants.MINIMUM_TILT, MapboxConstants.MAXIMUM_TILT); return this; } |