diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-05-16 16:24:18 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2018-05-17 19:22:03 +0200 |
commit | 4f2002b856346a2de4673b94a140c9b2677cefae (patch) | |
tree | 652ab9f50a555e35b2f83eab8f18e59a0b274fe6 /platform/android/MapboxGLAndroidSDK/src/main/java | |
parent | 30376f3ce1d17522d9e64901b1bbc52906ee5267 (diff) | |
download | qtlocation-mapboxgl-4f2002b856346a2de4673b94a140c9b2677cefae.tar.gz |
[android] - expose MapView#setOfflineRegionDefinition
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 39 |
1 files changed, 35 insertions, 4 deletions
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 4ecd7c9246..452f6a615d 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 @@ -23,7 +23,6 @@ import android.view.ViewTreeObserver; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ZoomButtonsController; - import com.mapbox.android.gestures.AndroidGesturesManager; import com.mapbox.android.telemetry.AppUserTurnstile; import com.mapbox.android.telemetry.Event; @@ -33,6 +32,8 @@ import com.mapbox.mapboxsdk.BuildConfig; import com.mapbox.mapboxsdk.R; import com.mapbox.mapboxsdk.annotations.Annotation; import com.mapbox.mapboxsdk.annotations.MarkerViewManager; +import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.maps.renderer.MapRenderer; @@ -40,9 +41,13 @@ import com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer import com.mapbox.mapboxsdk.maps.renderer.textureview.TextureViewMapRenderer; import com.mapbox.mapboxsdk.maps.widgets.CompassView; import com.mapbox.mapboxsdk.net.ConnectivityReceiver; +import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition; +import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition; import com.mapbox.mapboxsdk.storage.FileSource; import com.mapbox.mapboxsdk.utils.BitmapUtils; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.opengles.GL10; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; @@ -51,9 +56,6 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.opengles.GL10; - import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_MAP_NORTH_ANIMATION; import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_WAIT_IDLE; @@ -535,6 +537,35 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { nativeMapView.setStyleUrl(url); } + /** + * Loads a new style from the specified offline region definition and moves the map camera to that region. + * + * @param definition the offline region definition + * @see OfflineRegionDefinition + */ + public void setOfflineRegionDefinition(OfflineRegionDefinition definition) { + if (destroyed) { + return; + } + + OfflineTilePyramidRegionDefinition regionDefinition = (OfflineTilePyramidRegionDefinition) definition; + setStyleUrl(regionDefinition.getStyleURL()); + CameraPosition cameraPosition = new CameraPosition.Builder() + .target(regionDefinition.getBounds().getCenter()) + .zoom(regionDefinition.getMinZoom()) + .build(); + + if (!isMapInitialized()) { + mapboxMapOptions.camera(cameraPosition); + mapboxMapOptions.minZoomPreference(regionDefinition.getMinZoom()); + mapboxMapOptions.maxZoomPreference(regionDefinition.getMaxZoom()); + return; + } + mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); + mapboxMap.setMinZoomPreference(regionDefinition.getMinZoom()); + mapboxMap.setMaxZoomPreference(regionDefinition.getMaxZoom()); + } + // // Rendering // |