如何在Osmand Android中更改primaryRoadColor?

时间:2015-12-29 02:40:50

标签: android osmand

我尝试将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,但它没有成功。

3 个答案:

答案 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命名要求),该文件扩展了defaultdefault.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>

以下是结果:

  • OsmAnd风格
  • new BLACK ROADS菜单项(取自文件名)
  • BLACK ROADS style day mode
  • BLACK ROADS风格夜间模式

OsmAnd style new BLACK ROADS menu entry BLACK ROADS style day mode BLACK ROADS style night mode

答案 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,当然这是一种矫枉过正,但我​​已经安装了它。应该有其他更小的编辑器提供这个选项。

供参考,以下是此款式的截图:enter image description here

答案 2 :(得分:0)

如果某人仅对颜色变化感兴趣,那么我上个月写的this OSM diary entry可能会有所帮助。

除了我不知道基于how to文档的某些事情之外,还没有“ hello world”类型的示例。