diff options
author | Brad Leege <bleege@gmail.com> | 2015-12-02 15:11:11 -0600 |
---|---|---|
committer | Brad Leege <bleege@gmail.com> | 2015-12-03 16:57:43 -0600 |
commit | 8c55bc4a0f38f0f0129b58cb0732f6f26363970a (patch) | |
tree | 3e39055d2291518ff1945c90921641ede52ce600 /android | |
parent | 44fb85efc0ce0aabe6697369e28fa18ec7dbbd14 (diff) | |
download | qtlocation-mapboxgl-8c55bc4a0f38f0f0129b58cb0732f6f26363970a.tar.gz |
[android] #2805 - CameraUpdate and animateCamera() API
Diffstat (limited to 'android')
4 files changed, 73 insertions, 2 deletions
diff --git a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java new file mode 100644 index 0000000000..d69f82b806 --- /dev/null +++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdate.java @@ -0,0 +1,40 @@ +package com.mapbox.mapboxsdk.camera; + +import com.mapbox.mapboxsdk.geometry.LatLng; + +public final class CameraUpdate { + + /** + * Direction that the camera is pointing in, in degrees clockwise from north. + */ + private final float bearing; + + /** + * The location that the camera is pointing at. + */ + private final LatLng target; + + /** + * The angle, in degrees, of the camera angle from the nadir (directly facing the Earth). See tilt(float) for details of restrictions on the range of values. + */ + private final float tilt; + + /** + * Zoom level near the center of the screen. See zoom(float) for the definition of the camera's zoom level. + */ + private final float zoom; + + /** + * Package Private Constructor to only be used CameraUpdateFactory + * @param bearing Final Bearing + * @param target Final Target + * @param tilt Final Tilt + * @param zoom Final Zoom + */ + CameraUpdate(float bearing, LatLng target, float tilt, float zoom) { + this.bearing = bearing; + this.target = target; + this.tilt = tilt; + this.zoom = zoom; + } +} diff --git a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java new file mode 100644 index 0000000000..3ba2090bd2 --- /dev/null +++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java @@ -0,0 +1,15 @@ +package com.mapbox.mapboxsdk.camera; + +import android.support.annotation.NonNull; + +public class CameraUpdateFactory { + + /** + * Returns a CameraUpdate that moves the camera to a specified CameraPosition. + * @param cameraPosition Camera Position to change to + * @return CameraUpdate Final Camera Position data + */ + public static CameraUpdate newCameraPosition (@NonNull CameraPosition cameraPosition) { + return new CameraUpdate(cameraPosition.bearing, cameraPosition.target, cameraPosition.tilt, cameraPosition.zoom); + } +} diff --git a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java index 405eb0cbcb..79863c5a37 100644 --- a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java +++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java @@ -65,6 +65,7 @@ import com.mapbox.mapboxsdk.annotations.Polyline; import com.mapbox.mapboxsdk.annotations.PolylineOptions; import com.mapbox.mapboxsdk.annotations.Sprite; import com.mapbox.mapboxsdk.annotations.SpriteFactory; +import com.mapbox.mapboxsdk.camera.CameraUpdate; import com.mapbox.mapboxsdk.constants.MyBearingTracking; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.constants.Style; @@ -1101,6 +1102,21 @@ public final class MapView extends FrameLayout { this.mScrollEnabled = scrollEnabled; } + + // + // Mirrored Google Map's Camera API + // + + /** + * Animates the movement of the camera from the current position to the position defined in the update. + * See CameraUpdateFactory for a set of updates. + * @param update The change that should be applied to the camera. + */ + @UiThread + public final void animateCamera (CameraUpdate update) { + + } + // // Rotation // diff --git a/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java index 6e858ea2bc..88d48f1c85 100644 --- a/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java +++ b/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/TiltActivity.java @@ -5,8 +5,8 @@ import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; - import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.utils.ApiAccess; @@ -55,7 +55,7 @@ public class TiltActivity extends AppCompatActivity { .build(); // Creates a CameraPosition from the builder // Triggers tilt - //mMapView.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); + mMapView.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } @Override |