[android] - update map intializer for OfflineRegionDefintion with OfflineGeometryRegionDefinition

This commit is contained in:
tobrun
2018-08-21 11:49:18 +02:00
committed by Tobrun
parent a842c198ac
commit 0218c01095

View File

@@ -37,11 +37,13 @@ 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.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.renderer.MapRenderer;
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.OfflineGeometryRegionDefinition;
import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition;
import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition;
import com.mapbox.mapboxsdk.storage.FileSource;
@@ -567,22 +569,46 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
return;
}
OfflineTilePyramidRegionDefinition regionDefinition = (OfflineTilePyramidRegionDefinition) definition;
setStyleUrl(regionDefinition.getStyleURL());
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(regionDefinition.getBounds().getCenter())
.zoom(regionDefinition.getMinZoom())
.build();
if (definition instanceof OfflineTilePyramidRegionDefinition) {
setOfflineTilePyramidRegionDefinition((OfflineTilePyramidRegionDefinition) definition);
} else if (definition instanceof OfflineGeometryRegionDefinition) {
setOfflineGeometryRegionDefinition((OfflineGeometryRegionDefinition) definition);
} else {
throw new UnsupportedOperationException("OfflineRegionDefintion instance not supported");
}
}
private void setOfflineRegionDefinition(String styleUrl, LatLng cameraTarget, double minZoom, double maxZoom) {
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(cameraTarget)
.zoom(minZoom)
.build();
setStyleUrl(styleUrl);
if (!isMapInitialized()) {
mapboxMapOptions.camera(cameraPosition);
mapboxMapOptions.minZoomPreference(regionDefinition.getMinZoom());
mapboxMapOptions.maxZoomPreference(regionDefinition.getMaxZoom());
mapboxMapOptions.minZoomPreference(minZoom);
mapboxMapOptions.maxZoomPreference(maxZoom);
return;
}
mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mapboxMap.setMinZoomPreference(regionDefinition.getMinZoom());
mapboxMap.setMaxZoomPreference(regionDefinition.getMaxZoom());
mapboxMap.setMinZoomPreference(minZoom);
mapboxMap.setMaxZoomPreference(maxZoom);
}
private void setOfflineTilePyramidRegionDefinition(OfflineTilePyramidRegionDefinition regionDefinition) {
setOfflineRegionDefinition(regionDefinition.getStyleURL(),
regionDefinition.getBounds().getCenter(),
regionDefinition.getMinZoom(),
regionDefinition.getMaxZoom()
);
}
private void setOfflineGeometryRegionDefinition(OfflineGeometryRegionDefinition regionDefinition) {
setOfflineRegionDefinition(regionDefinition.getStyleURL(),
regionDefinition.getBounds().getCenter(),
regionDefinition.getMinZoom(),
regionDefinition.getMaxZoom()
);
}
//