diff options
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.java | 12 |
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); } |