Streetnames在Android上打开更具可读性的街道地图

Streetnames在Android上打开更具可读性的街道地图,android,zooming,openstreetmap,osmdroid,Android,Zooming,Openstreetmap,Osmdroid,我已经使用Openstreetmaps和OsmDroid构建了一个Android应用程序,其中包含离线地图数据。在MDPI为320x480像素的设备上,地图看起来不错,但在HDPI屏幕为480x800像素的设备上,街道名称很小,阅读起来有点困难。我在zoom level 18之前的地图数据(我可以下载并与Mapnik tile source一起使用的最大数据量)是从SD卡以zip文件的形式加载的。我的本地地图来自布鲁塞尔(比利时)的一个特定地区 具有320x480像素的MDPI设备的屏幕截图:

我已经使用Openstreetmaps和OsmDroid构建了一个Android应用程序,其中包含离线地图数据。在MDPI为320x480像素的设备上,地图看起来不错,但在HDPI屏幕为480x800像素的设备上,街道名称很小,阅读起来有点困难。我在zoom level 18之前的地图数据(我可以下载并与Mapnik tile source一起使用的最大数据量)是从SD卡以zip文件的形式加载的。我的本地地图来自布鲁塞尔(比利时)的一个特定地区

具有320x480像素的MDPI设备的屏幕截图:

480x800像素HDPI设备的屏幕截图:

如果您在设备上的应用程序中看到这些视图,MDPI地图可读性良好,而HDPI地图中的街道名称较小

有没有办法让HDPI设备上的街道名称更具可读性,这样用户就可以在地图上进一步缩放?因为没有openstreetmaps数据,所以无法转到缩放级别19。因此,一个简单且实施时间/工作时间短的小变通解决方案对我来说没问题。现在可以通过在地图上滑动来进行缩放。如果您还需要代码,请告诉我,我会发布它

提前谢谢


Kr

Osmdroid可用于静态PNG图像的平铺。无法更改平铺图像。如果您想获得更好的映射解决方案,请尝试MapsForge。此应用程序/库处理地图数据并动态渲染它们。通过这种方式,您可以更好地控制地图的渲染,还可以自定义地图的文本、字体和颜色。

在这个答案中,我将解释一下我是如何更改街道名称的大小的

在MapsForge的jar文件中包含一个xml文件,该文件将用于呈现地图数据。您也可以通过从服务器签出源代码来下载此文件:或从此处下载xml文件本身:。因此,您有一个基本的方法来调整自己的渲染文件。我把它弄得有点像这样:

<rule e="way" k="highway" v="tertiary">
    <line stroke="#ffff90" stroke-width="1.5" />
    <rule e="way" k="*" v="*" zoom-min="14">
        <pathText k="name" font-style="bold" font-size="32" stroke="#ffff90" stroke-width="2.0" />
    </rule>
</rule>
(xml文件的片段):

在MapsForgerRenderThemeAPI页面的Wiki页面(在上面的站点上),您可以找到如何调整自己的渲染文件以及rule元素中的e、k、v属性的含义。正如您所看到的,在无隧道通道规则元素中,way规则元素下面的某个地方有一个规则元素,带有e=“way”,k=“area”,v=“~| no | false”。此元素下的每个规则元素都有 e=“way”、k=“highway”和v值等于openstreetmap参数。当您登录到上的编辑页面时,您可以找到要调整名称的街道类型

现在,我要告诉你如何精确计算特定街道类型的字体大小。作为示例,我将以第三级道路元素为例。每种方式规则元素都包含如下代码:

<rule e="way" k="highway" v="tertiary">
    <line stroke="#ffff90" stroke-width="1.5" />
    <rule e="way" k="*" v="*" zoom-min="14">
        <pathText k="name" font-style="bold" font-size="32" stroke="#ffff90" stroke-width="2.0" />
    </rule>
</rule>
请注意,setRenderTheme(文件)将引发FileNotFoundException

这就是用mapsforge更改街道名称的全部内容。您可以根据需要渲染整个地图

感谢MapsForge开发社区

玩得开心


谢谢你的回答!MapsForge确实比OSMDroid好得多。花了一些时间让街道名称更具可读性,但现在一切正常。同时,使用MapsForge的地图数据的大小要小50倍,所以我不需要地图数据的扩展文件!很多人,你太棒了!感谢MapsForge的作者@拼音_samu你到底是如何用mapsforge把街道的名字变大的?@bk138我发布了一个新的答案。希望它能帮助你。玩得高兴