osmdroid - 显示更大的瓦片

6
我正在使用osmdroid和从OSM下载的地图,最高可达16级。我想知道是否有办法让osmdroid使用该缩放级别的瓷砖,但将其绘制得更大。
问题在于,该级别上的瓷砖对我来说具有足够的细节,但是绘制得太小了。我已经看到一些其他应用程序使用相同的瓷砖级别,但以某种方式设法将它们绘制得更大。
谢谢。
8个回答

4
我找到的解决这个问题的最佳方法(我今天早些时候也遇到了这个问题),是改变瓷砖源中的缩放比例(我正在使用自己版本的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



3
您无法在不修改osmdroid源代码的情况下实现此操作。目前,除非视图在缩放级别之间进行动画处理,否则瓦片会以其实际分辨率显示。也就是说,当动画完成后,瓷砖被切换,并且比例再次设置为1。我尝试了一些技巧,在用户尝试缩放超出最高细节级别时保持比例。它在视觉上起作用,但所有从像素映射到地图坐标的功能以及拖动地图时的一些交互都会中断。因此,这将需要更重大的源代码修改。虽然它是可行的,但我认为这并不值得麻烦 - 除非您真正想将修改贡献给该项目,并以一种不太hackish的方式进行。

2

我正在使用离线瓦片,并通过以下操作以2倍分辨率显示它们。重要的是保持512像素大小,即使瓦片只有256像素。

myMapView.setTileSource  (new XYTileSource ("Mapnik", ResourceProxy.string.offline_mode, 13, 17, 512, ".png", "http://127.0.0.1"));

使用不同的瓦片大小,osmdroid如何计算真实的瓦片坐标? - hguser
如果瓷砖的尺寸是256x256,并且您将tilesource设置为512,则只会使瓷砖的大小加倍。现在,我实际上更喜欢将Leaflet放在webview中而不是osmdroid。 - Tom Kincaid

1
为了完全解决你的问题,有两种方法。 第一种是使用类似于mapnik的软件自己生成或渲染地图瓦片。 第二种是在手机上使用基于向量的实时渲染器,例如mapsforge。 无论哪种方法,配置文件或样式文件都是关键。

1
Cloudmade支持高分辨率瓦片,这在目前市场上的手机上看起来更好。请在此处查看:

http://developers.cloudmade.com/projects/tiles/documents

我会在低密度和中密度设备上使用普通的瓷砖,而在高密度和超高密度设备上使用高分辨率的瓷砖。


这个项目似乎不再适合小型开发者使用:http://notes.ericjiang.com/posts/741 - elcuco

0

你可以使用不同的瓷砖来源,比如微软必应。那里也有更大的街道名称。


-1

一个在OSMdroid当前工作模型内的解决方法是使用图像处理软件,如ImageMagick或Photoshop,在更高的缩放级别下创建一组新的位图瓦片。

您需要做的是将每个当前瓦片(256x256像素)调整大小,将大小和宽度加倍,然后将图像分成4个新瓦片。根据新缩放级别的命名约定保存每个瓦片。瓦片地图命名约定可以在此处描述,以及从原始名称获取4个新名称的简单方法


这将导致在下一个更高的缩放级别基本上复制瓦片。 - Tom Kincaid
从某种意义上来说,它仍然能够实现所需的结果。 - CjS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接