我尝试将primaryRoadColor值更改为ff0000,当我编译它时替换为默认的ff80a0值。如何以及在哪里为道路创建自定义颜色?
在渲染文件夹中,我有以下xml
default.render.xml,Depends-template.render.xml,hud.render.xml,LightRS.render.xml,nautical.render.xml,regions.render.xml,skimap.render.xml,standalone-template .render.xml,test.render.xml,Topo-map-assimilation.render.xml,Touring-view_(更多对比度和详细信息).render.xml,UniRS.render.xml
我遵循了这个link,但它没有成功。
答案 0 :(得分:2)
似乎this tutorial需要更新,一个完整的“Hello World!”风格的例子会很好。
这就是我在 OsmAnd + 2.3.5 中做到的。
我的数据存储文件夹(Settings -> General Settings -> Data storage folder
)位于:
/storage/sdcard1/osmand-plus/osmand
所以自定义渲染器文件必须转到:
/storage/sdcard1/osmand-plus/osmand/rendering
此目录最初可能为空,但是当您从Configure map -> Map style
选择地图样式时,OsmAnd会将相应的渲染器XML文件放入该目录。
注意:您必须完全关闭应用并在添加新渲染器后重新启动它,或者对现有应用程序进行更改以便选择更改。
我进入了“继承”路线并创建了一个名为BLACK_ROADS.render.xml
的文件(遵循<name-of-renderer>.render.xml
命名要求),该文件扩展了default
(default.render.xml
)渲染器。
以下是我的渲染器的内容。我把它变成了一种模板,所以我稍后可以看到还有什么可以进入这个文件。
<?xml version="1.0" encoding="utf-8"?>
<!-- depends="default" -> default.render.xml -->
<renderingStyle name="Paints the roads black in day mode, white in night mode"
depends="default" defaultColor="#ffffff" version="1">
<renderingAttribute name="primaryRoadColor">
<!-- 40 -> 25% opacity, 80 -> 50% opacity, C0 -> 75% opacity, FF -> 100% opacity -->
<!-- or remove first two hex digits for 100% opacity -->
<!-- NIGHT MODE -->
<case nightMode="true" attrColorValue="#80ffffff"/> <!-- white -->
<!-- DAY MODE -->
<case attrColorValue="#80000000"/> <!-- black -->
</renderingAttribute>
<!-- These are "global" variables (can have many of each), which
can be referenced throughout the file. -->
<!--
<renderingAttribute/>
<renderingConstant/>
<renderingProperty/>
-->
<!-- This section determines the order in which objects are rendered.
Higher values will be on top. -->
<order/>
<!-- This section determines how text object are displayed. -->
<text/>
<!-- This section determines how point objects, which typically
have an icon associated with them, are displayed. -->
<point/>
<!-- This section determines how polygon objects are displayed. -->
<polygon/>
<!-- This section determines the look of roads, footpaths, coastlines etc.
Basically everything that is a line goes into this section. -->
<line/>
</renderingStyle>
以下是结果:
答案 1 :(得分:0)
我编辑了这个包含(mapnik)XML并从默认文件中添加了几个东西来制作新的样式。与osmAnd应用程序一起提供的应用程序非常令人难以置信,特别是在旅途中。颜色太浓烈而且太多了,所以在这个文件中我把它变成了类似Google地图的颜色,这对你来说更容易了。非重要道路为白色,主要道路为黄色。
这应该回答你的问题,因为我注释了我已经改变的部分,所以如果你寻找“eml”,你就可以找到它们。具体来说,如果要更改道路颜色,请查找Road-0到Road-4。这是五条大道路。较小的那些也在该部分。
进行更改时,请注意,有几种情况可能无法反映您的更改。这是因为其他选项有一组自己的样式。有道路样式,只需选择一个并仅编辑它,不要混淆。我选择了德国道路地图册。还有地图模式(日/夜/等),我选择日。这一切都非常多才多艺,但对我来说,单一的地图风格就足够了。
You can download my xml file here (eml.render.xml) :
https://pastebin.com/7MystwDv
1)将其复制到osmAnd的“rendering”文件夹
文件位置,取决于版本,可以是:
/ storage / sdcard1 / osmand-plus / osmand / rendering
或
/内部存储/ Android / data / net.osmand / files / rendering
2)启动osmAnd并转到Configure Map,然后单击Map Style。在这种情况下,您将拥有一个从您复制的eml.render.xml文件名派生的新样式“eml”。
3)选择之后,将道路风格改为:“德国道路地图集”,因为这是我唯一改变的一个
4)地图模式:“Day”也是唯一一个我改变的地方
如果您正在计划编辑这些文件,那么让编辑器显示十六进制颜色会有很大帮助。我正在使用Android Studio,当然这是一种矫枉过正,但我已经安装了它。应该有其他更小的编辑器提供这个选项。
答案 2 :(得分:0)
如果某人仅对颜色变化感兴趣,那么我上个月写的this OSM diary entry可能会有所帮助。
除了我不知道基于how to文档的某些事情之外,还没有“ hello world”类型的示例。