I'm trying to implement a MapView using the osmdroid library.
However at the moment the furthest I seem to be able to zoom in isn't sufficient enough for my purposes.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Setup map view:
mapView = new MapView(this, 256);
setContentView(mapView);
// Parse parameters
Intent intent = getIntent();
center = intent.getDoubleArrayExtra(INITIAL_CENTER);
multiTouch = intent.getBooleanExtra(MULTI_TOUCH, DEFAULT_MULTI_TOUCH);
zoomButtons = intent.getBooleanExtra(ZOOM_BUTTONS, DEFAULT_ZOOM_BUTTONS);
zoomLevel = intent.getIntExtra(ZOOM_LEVEL, DEFAULT_ZOOM_LEVEL);
if (center == null)
center = DEFAULT_INITIAL_CENTER;
// Applying parameters
mapView.setClickable(true);
mapView.setMultiTouchControls(multiTouch);
mapView.setBuiltInZoomControls(zoomButtons);
mapView.getController().setZoom(zoomLevel);
mapView.getController().setCenter(new GeoPoint(center[0], center[1]));
mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
mapView.setMaxZoomLevel(18);
// Show current location coordinates
Toast.makeText(
getApplicationContext(),
"Latitude:\t\t" + center[0] + "\n" +
"Longitude:\t" + center[1],
Toast.LENGTH_LONG).show();
// Offline maps:
mapView.setUseDataConnection(true);
}
Is there anyway to zoom in further (I've already tried setting zoom level to 18)?
The maximum zoom level is determined by the tile source that you are using. If you are using one of the provided online tile sources like MAPNIK, then the max zoom level is set to 18 because that is the max zoom level that the tile source creates tiles for. If you want to zoom in further then you need to use a tile source that provides higher zoom level tiles.
If you simply want to override the max zoom level regardless of the tile source's zoom level then you can simply call:
mapView.setMaxZoomLevel(19);
to set the max zoom level to 19, but again the tile source may just not have tiles at that zoom level.