Jos*_*ett 10 java android openstreetmap osmdroid
我正在尝试使用osmdroid库实现MapView.
然而,目前我似乎能够放大的最远距离不足以达到我的目的.
@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);
}
Run Code Online (Sandbox Code Playgroud)

无论如何还要进一步放大(我已经尝试将缩放级别设置为18)?
kur*_*arc 12
最大缩放级别由您使用的切片源确定.如果您使用其中一个提供的在线图块源(如MAPNIK),则最大缩放级别设置为18,因为这是图块源为其创建图块的最大缩放级别.如果您想进一步放大,则需要使用提供更高缩放级别图块的图块源.
如果您只想覆盖最大缩放级别,而不考虑切片源的缩放级别,那么您只需调用:
mapView.setMaxZoomLevel(19);
Run Code Online (Sandbox Code Playgroud)
将最大缩放级别设置为19,但瓷砖源可能再次没有该缩放级别的切片.
小智 7
对于任何寻求更好的磁贴缩放解决方案的人来说,osmdroid现在都带有内置函数,名为:
setTilesScaledDpi(boolean)
Run Code Online (Sandbox Code Playgroud)
该函数位于MapView类中.
| 归档时间: |
|
| 查看次数: |
6087 次 |
| 最近记录: |