From 79ab42f7916332b2e36331597d5a03c2de828725 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 23 Feb 2017 14:08:38 +0100 Subject: [PATCH] [android] - move calculating a bounding box zoom level to projection. (#8133) --- .../mapbox/mapboxsdk/camera/CameraUpdateFactory.java | 12 +----------- .../java/com/mapbox/mapboxsdk/maps/Projection.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java index fb0614c4a..ef8a4d58e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java @@ -259,7 +259,7 @@ public final class CameraUpdateFactory { float scaleX = (uiSettings.getWidth() - padding.left - padding.right) / width; float scaleY = (uiSettings.getHeight() - padding.top - padding.bottom) / height; minScale = scaleX < scaleY ? scaleX : scaleY; - zoom = calculateZoom(mapboxMap, minScale); + zoom = projection.calculateZoom(minScale); zoom = MathUtils.clamp(zoom, mapboxMap.getMinZoomLevel(), mapboxMap.getMaxZoomLevel()); } @@ -277,16 +277,6 @@ public final class CameraUpdateFactory { .bearing(0) .build(); } - - /** - * Calculates a zoom level based on minimum scale and current scale from MapView - * - * @param minScale The minimum scale to calculate the zoom level. - * @return zoom level that fits the MapView. - */ - public double calculateZoom(MapboxMap mapboxMap, float minScale) { - return Math.log(mapboxMap.getCameraPosition().zoom * minScale) / Math.log(2); - } } static final class CameraMoveUpdate implements CameraUpdate { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java index b7f93cc91..82d5dec6a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Projection.java @@ -117,4 +117,14 @@ public class Projection { float getWidth() { return nativeMapView.getWidth(); } + + /** + * Calculates a zoom level based on minimum scale and current scale from MapView + * + * @param minScale The minimum scale to calculate the zoom level. + * @return zoom level that fits the MapView. + */ + public double calculateZoom(float minScale) { + return Math.log(nativeMapView.getScale() * minScale) / Math.log(2); + } }