我正在使用 osmdroid 和从 OSM 下载的 map ,最高级别为 16。我想知道是否有任何方法可以让 osmdroid 使用该缩放级别的图 block ,但将其绘制得更大。
问题是该级别上的图 block 对我来说有足够的细节,但绘制得很小。我见过一些其他应用程序使用相同的图 block 级别,但不知何故设法将它们画得更大。
谢谢
最佳答案
我发现这个问题的最佳解决方案(我今天早些时候遇到过)是更改图 block 源中的缩放比例(我使用的是我自己的 OpenStreetMap 版本):
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
final int newScale = (int) (256 * scale);
String[] OSMSource = new String[2];
OSMSource[0] = "http://a.tile.openstreetmap.org/";
OSMSource[1] = "http://b.tile.openstreetmap.org/";
XYTileSource MapSource = new XYTileSource(
"OSM",
null,
1,
18,
newScale,
".png",
OSMSource
);
map.setTileSource(MapSource);
根据屏幕密度改变比例是一个比较好的解决方案。在我的测试过程中,一些图像变得有些模糊,但如果您针对这种情况降低缩放比例,您会得到非常好的结果。
顺便说一句,这不是我的解决方案,我在 Github 上的 OSMDROID 问题中发现了它.感谢 stefangab95。
关于android - osmdroid - 显示更大的瓷砖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7240568/