diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-03-15 11:59:57 -0400 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2016-03-15 13:56:53 -0400 |
commit | 93123e4d0eb0e5b4f95a6d7d92395b0cc2c48755 (patch) | |
tree | 9422887e92f0a393cde22b66eeed3eaa5454c48c /platform/android/MapboxGLAndroidSDK | |
parent | f823021e0de489fe6974779fe4d57a9344fd4fc8 (diff) | |
download | qtlocation-mapboxgl-93123e4d0eb0e5b4f95a6d7d92395b0cc2c48755.tar.gz |
[android] #4318 - move min/max zoom level to MapboxMap
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK')
4 files changed, 79 insertions, 70 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 acec8f17fb..763ab8d664 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 @@ -250,7 +250,7 @@ public final class CameraUpdateFactory { float scaleY = (uiSettings.getHeight() - padding.top - padding.bottom) / height; float minScale = scaleX < scaleY ? scaleX : scaleY; double zoom = projection.calculateZoom(minScale); - zoom = MathUtils.clamp(zoom, (float) uiSettings.getMinZoom(), (float) uiSettings.getMaxZoom()); + zoom = MathUtils.clamp(zoom, (float) mapboxMap.getMinZoom(), (float) mapboxMap.getMaxZoom()); // Calculate the center point PointF paddedNEPixel = new PointF(nePixel.x + padding.right / minScale, nePixel.y + padding.top / minScale); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 92a815a39c..a9ae39972d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -265,8 +265,8 @@ public class MapView extends FrameLayout { uiSettings.setZoomControlsEnabled(options.getZoomControlsEnabled()); // Zoom - uiSettings.setMaxZoom(options.getMaxZoom()); - uiSettings.setMinZoom(options.getMinZoom()); + mMapboxMap.setMaxZoom(options.getMaxZoom()); + mMapboxMap.setMinZoom(options.getMinZoom()); // Compass uiSettings.setCompassEnabled(options.getCompassEnabled()); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index fbeefd6ef6..432dc0ae8a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.maps; import android.location.Location; import android.os.SystemClock; +import android.support.annotation.FloatRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; @@ -72,6 +73,9 @@ public class MapboxMap { private MapboxMap.OnFpsChangedListener mOnFpsChangedListener; private MapboxMap.OnCameraChangeListener mOnCameraChangeListener; + private double mMaxZoomLevel = -1; + private double mMinZoomLevel = -1; + MapboxMap(@NonNull MapView mapView) { mMapView = mapView; mMapView.addOnMapChangedListener(new MapChangeCameraPositionListener()); @@ -84,6 +88,78 @@ public class MapboxMap { } // + // MinZoom + // + + /** + * <p> + * Sets the minimum zoom level the map can be displayed at. + * </p> + * + * @param minZoom The new minimum zoom level. + */ + @UiThread + public void setMinZoom(@FloatRange(from = MapboxConstants.MINIMUM_ZOOM, to = MapboxConstants.MAXIMUM_ZOOM) double minZoom) { + if ((minZoom < MapboxConstants.MINIMUM_ZOOM) || (minZoom > MapboxConstants.MAXIMUM_ZOOM)) { + Log.e(MapboxConstants.TAG, "Not setting minZoom, value is in unsupported range: " + minZoom); + return; + } + mMinZoomLevel = minZoom; + mMapView.setMinZoom(minZoom); + } + + /** + * <p> + * Gets the maximum zoom level the map can be displayed at. + * </p> + * + * @return The minimum zoom level. + */ + @UiThread + public double getMinZoom() { + if (mMinZoomLevel == -1) { + return mMinZoomLevel = mMapView.getMinZoom(); + } + return mMinZoomLevel; + } + + // + // MaxZoom + // + + /** + * <p> + * Sets the maximum zoom level the map can be displayed at. + * </p> + * + * @param maxZoom The new maximum zoom level. + */ + @UiThread + public void setMaxZoom(@FloatRange(from = MapboxConstants.MINIMUM_ZOOM, to = MapboxConstants.MAXIMUM_ZOOM) double maxZoom) { + if ((maxZoom < MapboxConstants.MINIMUM_ZOOM) || (maxZoom > MapboxConstants.MAXIMUM_ZOOM)) { + Log.e(MapboxConstants.TAG, "Not setting maxZoom, value is in unsupported range: " + maxZoom); + return; + } + mMaxZoomLevel = maxZoom; + mMapView.setMaxZoom(maxZoom); + } + + /** + * <p> + * Gets the maximum zoom level the map can be displayed at. + * </p> + * + * @return The maximum zoom level. + */ + @UiThread + public double getMaxZoom() { + if (mMaxZoomLevel == -1) { + return mMaxZoomLevel = mMapView.getMaxZoom(); + } + return mMaxZoomLevel; + } + + // // UiSettings // diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java index 4c2502cdb8..f87ddb4ca1 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java @@ -26,9 +26,6 @@ public class UiSettings { private boolean zoomControlsEnabled; private boolean scrollGesturesEnabled; - private double maxZoomLevel = -1; - private double minZoomLevel = -1; - UiSettings(@NonNull MapView mapView) { this.mapView = mapView; this.compassSettings = new ViewSettings(); @@ -38,70 +35,6 @@ public class UiSettings { /** * <p> - * Sets the minimum zoom level the map can be displayed at. - * </p> - * - * @param minZoom The new minimum zoom level. - */ - @UiThread - public void setMinZoom(@FloatRange(from = MapboxConstants.MINIMUM_ZOOM, to = MapboxConstants.MAXIMUM_ZOOM) double minZoom) { - if ((minZoom < MapboxConstants.MINIMUM_ZOOM) || (minZoom > MapboxConstants.MAXIMUM_ZOOM)) { - Log.e(MapboxConstants.TAG, "Not setting minZoom, value is in unsupported range: " + minZoom); - return; - } - minZoomLevel = minZoom; - mapView.setMinZoom(minZoom); - } - - /** - * <p> - * Gets the maximum zoom level the map can be displayed at. - * </p> - * - * @return The minimum zoom level. - */ - @UiThread - public double getMinZoom() { - if (minZoomLevel == -1) { - return minZoomLevel = mapView.getMinZoom(); - } - return minZoomLevel; - } - - /** - * <p> - * Sets the maximum zoom level the map can be displayed at. - * </p> - * - * @param maxZoom The new maximum zoom level. - */ - @UiThread - public void setMaxZoom(@FloatRange(from = MapboxConstants.MINIMUM_ZOOM, to = MapboxConstants.MAXIMUM_ZOOM) double maxZoom) { - if ((maxZoom < MapboxConstants.MINIMUM_ZOOM) || (maxZoom > MapboxConstants.MAXIMUM_ZOOM)) { - Log.e(MapboxConstants.TAG, "Not setting maxZoom, value is in unsupported range: " + maxZoom); - return; - } - maxZoomLevel = maxZoom; - mapView.setMaxZoom(maxZoom); - } - - /** - * <p> - * Gets the maximum zoom level the map can be displayed at. - * </p> - * - * @return The maximum zoom level. - */ - @UiThread - public double getMaxZoom() { - if (maxZoomLevel == -1) { - return maxZoomLevel = mapView.getMaxZoom(); - } - return maxZoomLevel; - } - - /** - * <p> * Enables or disables the compass. The compass is an icon on the map that indicates the * direction of north on the map. When a user clicks * the compass, the camera orients itself to its default orientation and fades away shortly |