aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-09-04 14:07:43 +0200
committerŁukasz Paczos <lukas.paczos@gmail.com>2019-09-04 14:07:43 +0200
commitedabd97109b9d13d09f25d526f02fca83890d36c (patch)
treea38b611b6be8a883ba78741cd65ec3e7ee859d10
parent89038a11f13682d4388f9ac05d86c21f85a523be (diff)
[android][wip] camera - exposed bearing, pitch, padding
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/BearingCameraTransition.java20
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapCameraController.java47
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PaddingCameraTransition.java28
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PitchCameraTransition.java20
4 files changed, 115 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/BearingCameraTransition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/BearingCameraTransition.java
new file mode 100644
index 000000000..2a5bf735f
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/BearingCameraTransition.java
@@ -0,0 +1,20 @@
+package com.mapbox.mapboxsdk.maps;
+
+import android.view.animation.Interpolator;
+
+public class BearingCameraTransition extends CameraTransition<Double> {
+
+ public BearingCameraTransition(int type, double duration, double delay, Double endValue, Interpolator interpolator) {
+ super(type, duration, delay, endValue, interpolator);
+ }
+
+ @Override
+ int getCameraProperty() {
+ return PROPERTY_BEARING;
+ }
+
+ @Override
+ Double getAnimatedValue(double fraction) {
+ return getStartValue() + ((getEndValue() - getStartValue()) * fraction);
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapCameraController.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapCameraController.java
index 27c8f188e..76d4dd23f 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapCameraController.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapCameraController.java
@@ -63,6 +63,18 @@ public class MapCameraController {
case CameraTransition.PROPERTY_ZOOM:
builder.zoom(-1);
break;
+
+ case CameraTransition.PROPERTY_PITCH:
+ builder.tilt(-1);
+ break;
+
+ case CameraTransition.PROPERTY_BEARING:
+ builder.bearing(-1);
+ break;
+
+ case CameraTransition.PROPERTY_PADDING:
+ builder.padding(null);
+ break;
}
finalUpdate = builder.build();
}
@@ -113,6 +125,22 @@ public class MapCameraController {
case CameraTransition.PROPERTY_ZOOM:
builder.zoom((double) value);
break;
+
+ case CameraTransition.PROPERTY_PITCH:
+ builder.tilt((double) value);
+ break;
+
+ case CameraTransition.PROPERTY_BEARING:
+ builder.bearing((double) value);
+ break;
+
+ case CameraTransition.PROPERTY_PADDING:
+ double[] padding = new double[4];
+ for (int i = 0; i < 4; i++) {
+ padding[i] = ((Double[]) value)[i];
+ }
+ builder.padding(padding);
+ break;
}
}
}
@@ -145,8 +173,27 @@ public class MapCameraController {
case CameraTransition.PROPERTY_CENTER:
transition.initTime(transform.getCameraPosition().target, time);
break;
+
case CameraTransition.PROPERTY_ZOOM:
transition.initTime(transform.getCameraPosition().zoom, time);
+ break;
+
+ case CameraTransition.PROPERTY_PITCH:
+ transition.initTime(transform.getCameraPosition().tilt, time);
+ break;
+
+ case CameraTransition.PROPERTY_BEARING:
+ transition.initTime(transform.getCameraPosition().bearing, time);
+ break;
+
+ case CameraTransition.PROPERTY_PADDING:
+ double[] padding = transform.getCameraPosition().padding;
+ final Double[] result = new Double[padding.length];
+ for (int i = 0; i < padding.length; i++) {
+ result[i] = Double.valueOf(padding[i]);
+ }
+ transition.initTime(result, time);
+ break;
}
behavior.animationScheduled(this, transition);
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PaddingCameraTransition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PaddingCameraTransition.java
new file mode 100644
index 000000000..2e1cc6fdb
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PaddingCameraTransition.java
@@ -0,0 +1,28 @@
+package com.mapbox.mapboxsdk.maps;
+
+import android.view.animation.Interpolator;
+
+public class PaddingCameraTransition extends CameraTransition<Double[]> {
+
+ public PaddingCameraTransition(int type, double duration, double delay, Double[] endValue, Interpolator interpolator) {
+ super(type, duration, delay, endValue, interpolator);
+ }
+
+ @Override
+ int getCameraProperty() {
+ return PROPERTY_PADDING;
+ }
+
+ @Override
+ Double[] getAnimatedValue(double fraction) {
+ Double[] startValue = getStartValue();
+ Double[] endValue = getEndValue();
+
+ Double[] value = new Double[4];
+ for (int i = 0; i < 4; i++) {
+ value[i] = startValue[i] + ((endValue[i] - startValue[i]) * fraction);
+ }
+
+ return value;
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PitchCameraTransition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PitchCameraTransition.java
new file mode 100644
index 000000000..ee478547b
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/PitchCameraTransition.java
@@ -0,0 +1,20 @@
+package com.mapbox.mapboxsdk.maps;
+
+import android.view.animation.Interpolator;
+
+public class PitchCameraTransition extends CameraTransition<Double> {
+
+ public PitchCameraTransition(int type, double duration, double delay, Double endValue, Interpolator interpolator) {
+ super(type, duration, delay, endValue, interpolator);
+ }
+
+ @Override
+ int getCameraProperty() {
+ return PROPERTY_PITCH;
+ }
+
+ @Override
+ Double getAnimatedValue(double fraction) {
+ return getStartValue() + ((getEndValue() - getStartValue()) * fraction);
+ }
+}