summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java12
1 files changed, 8 insertions, 4 deletions
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 0f6b146907..2a81ad6752 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
@@ -182,13 +182,17 @@ final class Transform implements MapView.OnMapChangedListener {
// Cancel any animation
cancelTransitions();
- if (zoomIn) {
- mapView.scaleBy(2.0, x, y, MapboxConstants.ANIMATION_DURATION);
- } else {
- mapView.scaleBy(0.5, x, y, MapboxConstants.ANIMATION_DURATION);
+ CameraPosition cameraPosition = invalidateCameraPosition();
+ if (cameraPosition != null) {
+ zoom(cameraPosition, zoomIn, x, y);
}
}
+ private void zoom(@NonNull CameraPosition cameraPosition, boolean zoomIn, float x, float y) {
+ int newZoom = (int) Math.round(cameraPosition.zoom + (zoomIn ? 1 : -1));
+ mapView.setZoom(newZoom, x, y, MapboxConstants.ANIMATION_DURATION);
+ }
+
void setZoom(double zoom) {
mapView.setZoom(zoom);
}