Prior to the rendering process with the Mapsforge writer some preprocessing is essential:

  • to work arround bugs with Mapsforge
  • to simplify osm-structure (unifying sac:scale,dav:scale;via_ferrata eg)
  • eliminating mass tagging (remove trees except under certain conditions)
  • remove some redundant tags (cycle nodes with additional tags covering the basic information)
  • aso…

The tool for this task: tag-transform

Its cappable to transform NODES, WAYS and RELATIONS (it cannot RESOLVE Relations in any way) in a most powerfull way.
The possibilitys of this tool are endless, however its not that easy to understand how it works and to ride this horse propper.

 

Changelog:


For maps from 3rd of  August 2023:

In Short:
1.) Seperate rendering of cycle-highways ( Radschnellwege)
Here you can see the discussion with all details:

https://www.openandromaps.org/oam-forums/topic/darstellung-von-radschnellwegen

2.) Superroutes for Cycle/Hiking Relations now resolved

Same Rules apply as its the case with waymarkedtrails.com

3.) mtb_scale=0 now on tracks too (was deleted so far)

oam-forums/topic/tagtransform-mtbscale0-auf-highwaytrack

4.) And lots of minor improvements and Bug-Fixes

 


For maps from 19th of  July 2023:

added area=no as area=area_no, non-renderable

<translation>
<name>area=no 2 area=area_no due 2 common value bug</name>
<description>area=no 2 area=area_no due 2 common value bug</description>
<match type="way">
<tag k="area" v="no"/>
</match>
<output>
<copy-unmatched/>
<tag k="area" v="area_no"/>
</output>
</translation>

unify ruined buildings:

<translation>
<name>unify ruined buildings</name>
<description>unify ruined buildings</description>
<match mode="or">
<tag k="building" v="ruins"/>
<tag k="abandoned:building" v="ruins"/>
<tag k="building:ruins" v=".*"/>
<match mode="and">
<tag k="building" v=".*"/>
<tag k="ruins" v="yes"/>
</match>
</match>
<output>
<copy-unmatched/>
<tag k="building" v="ruins"/>
</output>
</translation>

 


For maps from 23th of  April 2022:

Nodes for rcn_ref, rwn_ref are only rendered if
k=“network:type“ v=“node_network“
is present

 


For maps from 10th of  April 2022:

 

Strategie of avoiding ways with more than 15 tags (LIMIT of Mapsforge otherwise crashing) :

Changed from defensive (pre-tagtransform by chance) to offensive = including all tags (no pre-filtering) and checking every single way (up to 1,2 million) and step by step reducing the tags to 15.

Tool used: Switch from TagTransform to self written Perl-Script.

In the end only a handfull of ways have to be modified.

Every single way including route-information is checked against the tagmapping-list of OAM and amount of tags is reduced to 15.

Here the priority of tags that are skipped if way exxeed 15 tags
my @redlist = („mtb_scale_imba“,“surface“,“name“,“ref“,“trail_visibility“,“foot“,“bicycle“,“access“,“mtb_scale_uphill“,“mtb_scale“,“sac_scale“,“ref_hike“,“ref_cycle“,“ref_mtb“);

So in reality only the first 2 or 3 tags are skipped beginning with mtb_scale_imba

 


For maps from 9th of  February 2022:

Transform railway:preserved=yes to railway=preserved

 

Routes tagged as state=proposed are removed from the map.

However, these routes still do exist as

mtbnetwork=pmn > MTB Routes with state=proposed
network= pcn > Cycle Routes with state=proposed
hknetwork=pwn > Hiking Routes with state=proposed

at lowest priority in the map not shown by Elevate Theme

 


For maps from 23rd of  Dezember 2021:

## Added  Bike-Park tags:

mtb:scale:imba = 0,1,2,3,4

Transformed to :

mtb_scale_imba=mtba_0|mtba_1|mtba_2|mtba_3|mtba_4

For maps from 5th of  December 2021:

Remove some Tags from Ways with MTB-Routes to keep number of Tags per Way below 15
On Tracks we do not need sac- or mtb- Scales

 <translations>
	
	<translation>
		<name>clear route</name>
		<description>clear route</description>
			<match mode="or" type="way">
				<tag k="ref_hike" v=".*"/>
				<tag k="ref_cycle" v=".*"/>
				<tag k="ref_mtb" v=".*"/>
			</match>
		<output>
			<copy-all/>
			<tag k="ref" v="dummy"/>
		</output>
	</translation>
	
	<translation>
		<name>clear route</name>
		<description>clear route</description>
		<match mode="and" type="way">
			<tag k="highway" v="track"/>
			<match mode="or" >
				<tag k="ref_hike" v=".*"/>
				<tag k="ref_mtb" v=".*"/>
			</match>
		</match>
		<output>
			<copy-all/>
			<tag k="name" v="dummy"/>
		</output>
	</translation>
	
	<translation>
		<name>remove dummys</name>
		<description>remove dummys</description>
			<match mode="or" >
				<tag k=".*" v="dummy"/>
			</match>
		<output>
			<copy-unmatched/>
		</output>
	</translation>
	
</translations>

 

 

For maps from 27th of  Mai 2021:

Remove tourist=information w/o further definition

	<translation>
		<name>eliminate tourist=information w/o specific information=</name>
		<description>eliminate tourist=information w/o specific information=</description>
		<match mode="and" type="node">
			<match>
				<tag k="tourist" v="information"/>
			</match>
			<notag k="information" v=".*"/>
		</match>
		<output>
			<copy-all/>
			<tag k="tourist" v="unspecific_information"/>
		</output>
	</translation>	

For maps from 25th of  April 2021:

Unify some tags..

	<translation>
		<name>unify leisure|sport minigolf</name>
		<description>unify leisure|sport minigolf</description>
		<match mode=or>
			<tag k="leisure" v="miniature_golf"/>
			<tag k="sport" v="minigolf"/>
		</match>
		<output>
			<copy-unmatched/>
			<tag k="sport" v="miniature_golf"/>
		</output>
	</translation>	
	<translation>
		<name>unify leisure|sport skating</name>
		<description>unify leisure|sport skating</description>
		<match mode=or>
			<tag k="leisure" v="skatepark"/>
			<tag k="leisure" v="skate_park"/>
		</match>
		<output>
			<copy-unmatched/>
			<tag k="sport" v="skateboard "/>
		</output>
	</translation>

For maps from 17th of  March 2021:

<translation>
	<name>emergency_access_point unify</name>
	<description>unify</description>
		<match type="node">
			<tag k="emergency" v="access_point"/>
		</match>
	<output>
		<copy-unmatched/>
		<tag k="highway" v="emergency_access_point"/>
	</output>
</translation>

For maps from 4th of  February 2021:

EQ for plant:source > generator:source

<translation>
	<name>plant:source 2 generator:source</name>
	<description>plant:source 2 generator:source</description>
	<match>
		<match mode="or" >
			<tag k="plant:source" match_id="gensrc" v="(.*)"/>
		</match>
		<notag k="generator:source" v=".*"/>
	</match>
	<output>
	<copy-all/>
		<tag k="generator:source" from_match="gensrc" v="{1}"/>
	</output>
</translation>

For maps from 18th of  January 2021:

EQ for some access tags

<translation>
<name>access:conditional NO</name>
<description>access:conditional NO</description>
<match mode="or" >
  <tag k="access:conditional" v="no(.*)" />
  <tag k="access:onroad:conditional" v="no(.*)" />
</match>
<output>
  <copy-unmatched/>
  <tag k="access:conditional" v="acc_con_no"/>
</output>
</translation>

<translation>
<name>access=discouraged</name>
<description>access=discouraged</description>
<match mode="or">
  <tag k="access" v="discouraged(.*)" />
  <tag k="access:conditional" v="discouraged(.*)" />
</match>
<output>
<copy-unmatched/>
  <tag k="access" v="discouraged"/>
</output>
</translation>

<translation>
<name>access:offroad NO</name>
<description>access:offroad NO</description>
<match mode="or" >
  <tag k="access:offroad" v="no(.*)" />
  <tag k="access:offroad:conditional" v="no(.*)" />
  <tag k="access:offroad" v="discouraged(.*)" />
  <tag k="access:offroad:conditional" v="discouraged(.*)" />
</match>
<output>
<copy-unmatched/>
  <tag k="access:offroad" v="acc_off_no"/>
</output>
</translation>

 

For maps from 1st of  January 2021:
Essential change for mapping of protected_areas & protect_class

See discussion here >

key=“protect_class“ value=“pr_1″ equivalent-values=“1,1a,1b,1A,1B“ renderable=“false“
key=“protect_class“ value=“pr_2″ equivalent-values=“2″ renderable=“false“
key=“protect_class“ value=“pr_3″ equivalent-values=“3″ renderable=“false“
key=“protect_class“ value=“pr_4″ equivalent-values=“4″ renderable=“false“
key=“protect_class“ value=“pr_5″ equivalent-values=“5,6″ renderable=“false“
key=“protect_class“ value=“pr_7″ equivalent-values=“7″ renderable=“false“
key=“protect_class“ value=“pr_97″ equivalent-values=“97″ renderable=“false“
key=“protect_class“ value=“pr_98″ equivalent-values=“98″ renderable=“false“
key=“protect_class“ value=“pr_99″ equivalent-values=“99″ renderable=“false“
key=“protect_class“ value=“pr_14″ equivalent-values=“14″ renderable=“false“

Transform:
boundary=protected_area & protect_class=24 -> boundary=aboriginal_lands
boundary=protected_area & protect_class=25 -> landuse=military

 

These protect_classes have no value for hike/cycle maps and could be dropped at any time from OAM-Maps:

key=“protect_class“ value=“pr_11″ equivalent-values=“11,12,13,15,16,19″ renderable=“false“
key=“protect_class“ value=“pr_21″ equivalent-values=“21,22,23,26,27,29″ renderable=“false“

 

For maps from 24th of  November 2020:

cycleway*= share_busway ist transformed and treated as cycleway*=lane

<translation>
<name>cycleway lanes bus 2 lane</name>
<description>cycleway lanes bus 2 lane</description>
  <match mode="and" type="way">
   <tag match_id="type" k="cycleway(.*)" v="share_busway"/>
  </match> 
<output>
<copy-all/>
  <tag from_match="type" v="lane"/>
</output>
</translation>

For maps from 23th of  August 2020:

Changed prozessing of
https://wiki.openstreetmap.org/wiki/Key:mtb:scale:imba

<translation>
  <name>mtb:scale:imba to mtb:scale</name>
  <description>mtb:scale:imba to mtb:scale</description>
  <match>
    <match mode="or" type="way">
      <tag k="mtb:scale:imba" match_id="imba0" v="0"/>
      <tag k="mtb:scale:imba" match_id="imba1" v="1"/>
      <tag k="mtb:scale:imba" match_id="imba2" v="2"/>
      <tag k="mtb:scale:imba" match_id="imba3" v="3"/>
      <tag k="mtb:scale:imba" match_id="imba4" v="4"/>
    </match>
    <notag k="mtb_scale" v=".*"/>
  </match>
  <output>
  <copy-all/>
    <tag k="mtb_scale_imba" from_match="imba0" v="mtba_0"/>
    <tag k="mtb_scale_imba" from_match="imba1" v="mtba_1"/>
    <tag k="mtb_scale_imba" from_match="imba2" v="mtba_2"/>
    <tag k="mtb_scale_imba" from_match="imba3" v="mtba_3"/>
    <tag k="mtb_scale_imba" from_match="imba4" v="mtba_4"/>
  </output>
</translation>

 

For maps from 15th of  August 2020:

<translation>
	<name>obstacle=fallen_tree 2 barrier=log</name>
	<description>obstacle=fallen_tree 2 barrier=log</description>
	<match type="node">
		<tag k="obstacle" v="fallen_tree"/>
	</match>
	<output>
		<copy-unmatched/>
		<tag k="barrier" v="log"/>
	</output>
</translation>

For maps from 15th of  May 2020:

Intergrated the new
https://wiki.openstreetmap.org/wiki/Key:mtb:scale:imba

<translation>
  <name>mtb:scale:imba to mtb:scale</name>
  <description>mtb:scale:imba to mtb:scale</description>
  <match>
    <match mode="or" type="way">
      <tag k="mtb:scale:imba" match_id="imba0" v="0"/>
      <tag k="mtb:scale:imba" match_id="imba1" v="1"/>
      <tag k="mtb:scale:imba" match_id="imba2" v="2"/>
      <tag k="mtb:scale:imba" match_id="imba3" v="3"/>
      <tag k="mtb:scale:imba" match_id="imba4" v="4"/>
    </match>
    <notag k="mtb_scale" v=".*"/>
  </match>
  <output>
  <copy-all/>
    <tag k="mtb_scale" from_match="imba0" v="mtba_0"/>
    <tag k="mtb_scale" from_match="imba1" v="mtba_1"/>
    <tag k="mtb_scale" from_match="imba2" v="mtba_2"/>
    <tag k="mtb_scale" from_match="imba3" v="mtba_3"/>
    <tag k="mtb_scale" from_match="imba4" v="mtba_4"/>
  </output>
</translation>

For maps from 23rd of  April 2020:

<translation>
  <name>information=guidepost ref2addr</name>
  <description>mapsforge doesnt address "ref" on NODES so ref is transformed to "addr:housenumber"</description>
  <match mode="and" type="node">
    <tag k="information" v="guidepost"/>
    <tag k="ref" match_id="gpost_ref" v="(^[A-Z,a-z,0-9]{1,5})"/>
  </match>
  <output>
  <copy-all/>
    <tag k="addr:housenumber" from_match="gpost_ref" v="{1}"/>
  </output>
</translation>

 

For maps from 28th of  August 2019:

catching man_made=water_tap as drinking water

<translation>
  <name>another kind of drinking_water....</name>
  <description>another kind of drinking_water....</description>
  <match mode="and">
    <tag k="man_made" v="water_tap"/>
    <tag k="drinking_water" v="yes"/>
  </match>
  <output>
    <copy-all/>
    <tag k="amenity" v="drinking_water"/>
  </output>
</translation>

For maps from 28th of  February 2019:

added some transformations for designation/permissive foot/bicycle

<!-- https://www.openandromaps.org/oam-forums/topic/uk-bridleway-rendering-for-bikes__trashed/page/2/#post-27254 -->
<!-- designation=public_footpath -->
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="public_footpath"/>
		</match>
		<notag k="bicycle" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="bicycle" v="no"/>
	</output>
</translation>	
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="public_footpath"/>
		</match>
		<notag k="foot" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="foot" v="designated"/>
	</output>
</translation>
<!-- designation=public_bridleway -->	
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="public_bridleway"/>
			<tag k="designation" v="byway_open_to_all_traffic"/>
			<tag k="designation" v="restricted_byway"/>
		</match>
		<notag k="bicycle" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="bicycle" v="designated"/>
	</output>
</translation>	
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="public_bridleway"/>
			<tag k="designation" v="byway_open_to_all_traffic"/>
			<tag k="designation" v="restricted_byway"/>
		</match>
		<notag k="foot" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="foot" v="designated"/>
	</output>
</translation>
<!-- designation=permissive_footpath -->
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="permissive_footpath"/>
		</match>
		<notag k="bicycle" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="bicycle" v="no"/>
	</output>
</translation>	
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="permissive_footpath"/>
		</match>
		<notag k="foot" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="foot" v="permissive"/>
	</output>
</translation>	
<!-- designation=permissive_bridleway -->
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="permissive_bridleway"/>
		</match>
		<notag k="bicycle" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="bicycle" v="permissive"/>
	</output>
</translation>	
<translation>
	<name>permissions GB</name>
	<description>permissions GB</description>
	<match type="way">
		<match type="way" mode="or">
			<tag k="designation" v="permissive_bridleway"/>
		</match>
		<notag k="foot" v=".*"/>
	</match>
	<output>
		<copy-all/>
		<tag k="foot" v="permissive"/>
	</output>
</translation>

 

For maps from 10th of  October 2018:

added some transforms for cycleway lanes/tracks

<translation>
	<name>cycleway lanes oneway</name>
	<description>cycleway lanes oneway</description>
	<match mode="and" type="way">
		<tag k="cycleway" v="lane"/>
		<tag k="oneway" v="-1"/>
	</match>			
	<notag k="oneway:bicycle" v="ow_bic_no"/>
	<output>
		<copy-all/>
		<tag k="cycleway" v="dummy"/>
		<tag k="cycleway_lane" v="cw_lane_oneway_rev"/>
	</output>
</translation>	

<translation>
	<name>cycleway tracks oneway</name>
	<description>cycleway tracks oneway</description>
	<match mode="and" type="way">
		<tag k="cycleway" v="track"/>
		<tag k="oneway" v="-1"/>
	</match>			
	<notag k="oneway:bicycle" v="ow_bic_no"/>
	<output>
		<copy-all/>
		<tag k="cycleway" v="dummy"/>	
		<tag k="cycleway_track" v="cw_track_oneway_rev"/>
	</output>
</translation>

 

 

For maps from 29th of  July 2018:

handle cycle lanes and tracks on oneway=yes
oneway=yes and oneway:bicycle=no will still result in cw_lane_both | cw_track_both
oneway=yes w/o oneway:bicycle=no will result in cw_lane_oneway | cw_track_oneway = NEW TAGS !!

 


For maps from 3rd of  January 2018:

Bugfix: generator:source=* again in maps

 


For maps from 26th of  December 2017:

value:permit was transformed from key:foot|bicycle to key:access so far
NEW: value:permit stays with key:foot|bicycle|access and have to be handled in theme seperate.

 

new tagmapping for key:foot|bicycle|access

<osm-tag key='access' value='destination' equivalent-values='customers' renderable='false' />
<osm-tag key='access' value='private' equivalent-values='delivery, restricted' renderable='false' />
<osm-tag key='access' value='acc_no' equivalent-values='no,prohibited' renderable='false' />
<osm-tag key='access' value='permit' equivalent-values='license,fee,toll' renderable='false' />
<osm-tag key='access' value='forestry' equivalent-values='agricultural,agricultural;forestry' renderable='false' />
<osm-tag key='bicycle' value='bic_yes' equivalent-values='yes,public,allowed' renderable='false' />
<osm-tag key='bicycle' value='bic_designated' equivalent-values='designated,official' renderable='false' />
<osm-tag key='bicycle' value='bic_permissive' equivalent-values='permissive' renderable='false' />
<osm-tag key='bicycle' value='bic_no' equivalent-values='no,prohibited' renderable='false' />
<osm-tag key='bicycle' value='bic_private' equivalent-values='delivery,restricted' renderable='false' />
<osm-tag key='bicycle' value='bic_forestry' equivalent-values='agricultural,agricultural;forestry' renderable='false' />
<osm-tag key='bicycle' value='bic_destination' equivalent-values='customers' renderable='false' />
<osm-tag key='bicycle' value='bic_permit' equivalent-values='license,fee,toll' renderable='false' />
<osm-tag key='foot' value='ft_yes' equivalent-values='yes,public,allowed' renderable='false' />
<osm-tag key='foot' value='ft_designated' equivalent-values='designated,official' renderable='false' />
<osm-tag key='foot' value='ft_permissive' equivalent-values='permissive' renderable='false' />
<osm-tag key='foot' value='ft_no' equivalent-values='no,prohibited' renderable='false' />
<osm-tag key='foot' value='ft_private' equivalent-values='delivery,restricted' renderable='false' />
<osm-tag key='foot' value='ft_destination' equivalent-values='customers' renderable='false' />
<osm-tag key='foot' value='ft_permit' equivalent-values='license,fee,toll' renderable='false' />

 

 


For maps from 3rd of  December 2017:

allow numeric values for:

(+ some additional values for safety_rope)

<!– tags_alpine –>
<osm-tag key=‘safety_rope’ value=‘sr_yes’ equivalent-values=’yes’ zoom-appear=’15’ />
<osm-tag key=‘ladder’ value=‘ld_yes’ equivalent-values=’yes’ zoom-appear=’15’ />
<osm-tag key=‘rungs’ value=‘rn_yes’ equivalent-values=’yes’ zoom-appear=’15’ />

 

<translation>
	<name>ladders with numeric values to yes</name>
	<description>ladders with numeric values to yes</description>
	<match>
		<tag k="ladder" v="(^[1-9].*)"/>
	</match>
	<output>
		<copy-all/>
		<tag k="ladder" v="yes"/>
	</output>
</translation>
<translation>
	<name>ropes with numeric values to yes</name>
	<description>ropes with numeric values to yes</description>
	<match>
		<tag k="safety_rope" v="(^[1-9].*)"/>
	</match>
	<output>
		<copy-all/>
		<tag k="safety_rope" v="yes"/>
	</output>
</translation>	
<translation>
	<name>rungs with numeric values to yes</name>
	<description>runges with numeric values to yes</description>
	<match>
		<tag k="rungs" v="(^[1-9].*)"/>
	</match>
	<output>
		<copy-all/>
		<tag k="rungs" v="yes"/>
	</output>
</translation>

 

 


For maps from 19th of  November 2017:

added mines (Tag= „adit“) and military=bunker , both ways and nodes
with special focus at abandoned/disused ones
Please take a look at TagTransform page for rules

<osm-tag key=’military‘ value=’bunker‘ zoom-appear=’15‘ />
<osm-tag key=’military‘ value=’bunker_disused‘ zoom-appear=’15‘ />
<osm-tag key=’man_made‘ value=’adit‘ zoom-appear=’15‘ />
<osm-tag key=’man_made‘ value=’adit_disused‘ zoom-appear=’15‘ />

TagTRansform rules for identifiying the disused adits/mines/bunkers

	
<!-- mines and bunkers -->
<!-- mines == man_made=adit -->
<translation>
	<name>check abandoned and disused mines/adit</name>
	<description>check abandoned and disused mines/adit</description>
	<match mode="and">
		<match>		
			<tag k="man_made" v="adit"/>
		</match>
		<match mode="or">
			<tag k="abandoned" v="yes"/>
			<tag k="historic" v="yes"/>
			<tag k="ruins" v="yes"/>
			<tag k="disused" v="yes"/>
			<tag k="historic" v="ruins"/>			
		</match>
	</match>
	<output>
		<copy-unmatched/>
		<tag k="man_made" v="adit_disused"/>
	</output>
</translation>	
<translation>
	<name>check abandoned and disused mines/adit</name>
	<description>check abandoned and disused mines/adit</description>
	<match mode="or">
		<tag k="abandoned:man_made" v="adit"/>
		<tag k="disused:man_made" v="adit"/>
		<tag k="historic:man_made" v="adit"/>	
		<tag k="historic" v="adit"/>		
		<tag k="historic" v="mine_adit"/>				
	</match>
	<output>
		<copy-unmatched/>
		<tag k="man_made" v="adit_disused"/>
	</output>
</translation>		
<!-- Bunkers -->
<translation>
	<name>check abandoned and disused for military = bunker</name>
	<description>check abandoned and disused for military = bunker</description>
	<match mode="and">
		<match>		
			<tag k="military" v="bunker"/>
		</match>
		<match mode="or">
			<tag k="abandoned" v="yes"/>
			<tag k="historic" v="yes"/>
			<tag k="ruins" v="yes"/>
			<tag k="disused" v="yes"/>
			<tag k="historic" v="ruins"/>			
		</match>
	</match>
	<output>
		<copy-unmatched/>
		<tag k="military" v="bunker_disused"/>
	</output>
</translation>	
<translation>
	<name>check abandoned and disused for military = bunker</name>
	<description>check abandoned and disused for military = bunker</description>
	<match mode="or">
		<tag k="abandoned:building" v="bunker"/>
		<tag k="abandoned:military" v="bunker"/>
		<tag k="disused:military" v="bunker"/>
		<tag k="historic" v="bunker"/>			
	</match>
	<output>
		<copy-unmatched/>
		<tag k="military" v="bunker_disused"/>
	</output>
</translation>	

 

 


For maps from 6th of October:

transform name:zh_pinyin=* TO name:zhp=*
‚cause Mapsforge language switcher does’nt work with „zh_pinyin“

 


For maps from 24th of September:

 

place=island, place=islet and place=archipelago: for these areas (Multipolys) the center is calculated an a Node with the name/label ist created and set at the center of the MP. This is a huge improvement for maps with lots of islands. Thanks to @JohnPercy for this idea.
https://www.openandromaps.org/oam-forums/topic/names-for-larger-islands-a-suggestion

 

Clear abandoned:landuse=* to landuse=* PLUS abandoned=yes
Reason: eg. quarrys and cemetrys will exist for many centurys even when disuses/abandoned.

Transform disused:building=* to building=yes cause these buildings still exist.

Removed raw_sac_scale
Removed class:bicycle:*=*
Removed noexit
Removed incline_dir
Reason: Only 15 Tags are allowed for one object in Mapsforge – if exeeded the object is skipped and the whole map tile where this object resists too!

### Changed rule:

<tag k="via_ferrata" v=".*"/> 
<tag k="via_ferrata_scale" v="(^[1-9].*)"/> 
<tag k="sport" v="via_ferrata"/> 
<tag k="highway" v="via_ferrata"/>

no longer force

<tag k="mtb_scale" v="mtbs_6"/>
<tag k="sac_scale" v="T6"/>

Force of „via_ferrata_flag=yes“ stays at it is.

So new rule is:
Note: via_ferrata_scale=0 does’nt force via_ferrata_flag=set

<translation>
	<name>set via_ferrata_flag</name>
	<description>set via_ferrata_flag and force highest mtb- and sac- scales</description>
	<match mode="or" type="way">
		<tag k="via_ferrata" v=".*"/>
		<tag k="via_ferrata_scale" v="1-|1|1+|2-|2|2+|3-|3|3+|4-|4|4+|5-|5|5+|6-|6|6+"/>
		<tag k="sport" v="via_ferrata"/>
		<tag k="highway" v="via_ferrata"/>
	</match>
	<output>
		<copy-all/>
		<tag k="via_ferrata_flag" v="set"/>
	</output>
</translation>

 

 


For maps from 1st of August:

There are important changes in both tagmapping and tagtransform concerning sac_scale (click)

 


For maps from 1st of  July 2017:

removed sac_scale from ways tagged as highway=track
sac_scale on tracks doesnt add much information for users and occuopies 1 slot in limited tagspace for objects.

 


For maps from 1st of  June 2017:

Cleanup for more efficient seach in POI places (Citys, towns,…)

move opengeodb:population und :post_codes to approbriate OSM-Tags
delete opengeodb:* tags
delete „is_in“ Tag (you never find a major city of a district/county with this tag cause all villages within the county will have the capital in the is_in tag)

transformed landuse=wood to natural=wood
(see http://wiki.openstreetmap.org/wiki/Tag:landuse%3Dwood)

 


For maps from 4th of  March 2017:

access=permit + access=licence + foot=permit
transformed to access=permit

 


For maps from 20th of  December 2016:

Changes for cycleway track/lanes
.. cause there are roads with a cycleway=track PLUS cycleway=lane

  • cycleway:right=track transformed to cycleway_track=cw_track_right
  • cycleway:left=track transformed to cycleway_track=cw_track_left
  • cycleway=track now transformed to cycleway_track=cw_track_both
  • cycleway:right=lane transformed to cycleway_lane=cw_lane_right
  • cycleway:left=lane transformed to cycleway_lane=cw_lane_left
  • cycleway=lane now transformed to cycleway_lane=cw_lane_both

 


For maps from 1st of  December 2016:

Added:

  • cycleway:right=track transformed to cycleway=cw_track_right
  • cycleway:left=track transformed to cycleway=cw_track_left

Changed Tag:

  • cycleway=track now transformed to cycleway=cw_track_both

 


For maps from 11th of  November 2016:

Added:

  • cycleway:right=lane transformed to cycleway=cw_lane_right
  • cycleway:left=lane transformed to cycleway=cw_lane_left

Changed Tag:

  • cycleway=lane now transformed to cycleway=cw_lane_both

 


For maps from 10th of Oktober 2016:

Abreviations for streetnames for improved rendering on device
(Names in mapsforge are only rendered if street name fit straight way segment so: the shorter the name the more likely its rendered on screen)
Thanks to John Percy for this great idea!

DE:
#Platz -> Pl.
#Strasse -> Str.
#Straße – > Str.
#.*gasse -> g.

EN:
#Boulevard -> Bvd
#Highway -> Hwy
#Square -> Sq
#Street -> St
#Drive -> Dr
#Avenue -> Av
#Road ->
#Close -> Cl
#Court -> Ct
#East -> E
#West -> W
#North -> N
#South -> S
#Lane -> Ln

ES:
#Avenida -> Av.
#Camino -> Cno.
#Carretera -> Ctra.
#Plaza -> Pl.
#Calle -> C/
#Carrer -> c/

FR:
#Allée -> All.
#Avenue -> Av.
#Boulevard -> Bd.
#Place -> Pl.
#Ruelle -> RLE

NL:
#Straat -> str.

 


For maps from 8th of July 2016:

seperate hot_springs from natural=spring:

<translation>
    <name>seperate spring  / hot_spring </name>
    <description>seperate spring  / hot_spring</description>
    <match mode="and">
        <match>
            <tag k="natural" v="spring"/>
        </match>
        <match mode="or">
            <tag k="spring:type" v="hot"/>
            <tag k="temperature" v="hot"/>                
            <tag k="spring" v="hot_spring"/>
            <tag k="type" v="hot"/>            
            <tag k="hot_spring" v="yes"/>            
            <tag k="type" v="hot_water"/>                    
        </match>            
    </match>            
    <output>
        <copy-all/>
        <tag k="natural" v="hot_spring"/>
    </output>
</translation>    

<translation>
    <name>retag leisure=hot_spring  / natural=hot_spring </name>
    <description>retag leisure=hot_spring  / natural=hot_spring</description>
    <match>
        <tag k="leisure" v="hot_spring"/>
    </match>
    <output>
        <copy-all/>
        <tag k="natural" v="hot_spring"/>
    </output>
</translation>

 


For maps from 1st of May 2016:

  • unified natural/place for labels
    <translation>
        <name>unify natural/place for labels</name>
        <description>unify natural/place for labels</description>
        <match>
            <tag k="place" match_id="_val" v="bay|cape|fjord|canyon|crater|peninsula|valley"/>
        </match>
        <output>
            <copy-unmatched/>
            <tag k="natural" from_match="_val" v="{1}"/>
        </output>
    </translation>

    <translation>
        <name>unify natural/place for labels</name>
        <description>unify natural/place for labels</description>
        <match>
            <tag k="natural" match_id="_val" v="ocean|sea|archipelago"/>
        </match>
        <output>
            <copy-unmatched/>
            <tag k="place" from_match="_val" v="{1}"/>
        </output>
    </translation>

Several minor improvements

 


For maps from 8th of December 2015:

  • added oneway:bicycle=no transformed to oneway:bicycle=ow_bic_no incl. cycleway=opposite, cycleway=opposite_track  cycleway=opposite_lane

This indicates oneways where where bicycles are allowed to travel in the opposite direction

<translation>
	<name>unify oneway:bicycle=no and transformed to oneway:bicycle=ow_bic_no due to common_value_bug</name>
	<description>unify oneway:bicycle=no</description>
	<match mode="and">
		<match mode="or" type="way">
			<tag k="oneway"  v="yes"/>
		</match>	
		<match mode="or" type="way">
			<tag k="cycleway" v="opposite"/>
			<tag k="cycleway" v="opposite_track"/>
			<tag k="cycleway" v="opposite_track"/>
			<tag k="oneway:bicycle" v="no"/>
		</match>
	</match>			
	<output>
		<copy-all/>
		<tag k="oneway:bicycle" v="ow_bic_no"/>
	</output>
</translation>

 

 


For maps from 20th of September 2015:

  • added poly_Labels (Names) for natural=mountain_range and natural=mountain_area
    <translation>
        <name>unify moutain_area</name>
        <description>unify moutain_area</description>
        <match mode="and">
            <tag k="region:type" v="mountain_area"/>
            <tag k="place" v="region"/>            
        </match>        
        <output>
            <copy-all/>
            <tag k="natural" v="mountain_area"/>
        </output>
    </translation>        
    <translation>
    <name>unify moutain_range</name>
        <description>unify moutain_range</description>
            <match mode="and">
                <tag k="region:type" v="mountain_range"/>
                <tag k="place" v="region"/>            
            </match>        
        <output>
            <copy-all/>
            <tag k="natural" v="mountain_range"/>
        </output>
    </translation>

 


For maps from 1st of September 2015:

– added: class_bicycle_mtb
Tagtransformed from class:bicycle:mtb

values tansformed from

  • -3 to cbmtb-3
  • -2 to cbmtb-2
  • -1 to cbmtb-1
  • -0|0|+0 to cbmtb+0
  • 1|+1 to cbmtb+1
  • 2|+2 to cbmtb+2
  • 3|+3 to cbmtb+3

Ann: I like the idea of the class:bicycle, however only a very few roads are tagged so at now its completely useless for common use.
So the support for this tag is intended for mappers, using the Openandromaps with their own custom themes as a base to further add this tag to OSM database.
If this is’nt done I will stop supporting this tag.

 


For maps from 15th of June 2015:

Bugfix for natural=trees
These nodes were deleted so far if they don’t contain additional tags.
If a node in a MultiPolygon contained such a tree at the connection beteween two members of the MP the MP brocke.

Now the node is preserved, only the tag natural=tree is deleted FROM the node.
Thanks a lot to Richard who reported this issue and helped to identify of the Bug.

New rule for deleting simple trees:

    <translation>
        <name>filter out trees with denotation=landmark|natural_monument, create intermediate tag</name>
        <description>filter trees</description>
        <match type="node" mode="and">
            <tag k="natural" v="tree"/>
            <match type="node" mode="or">
                <tag k="denotation" v="natural_monument|landmark"/>
                <tag k="name" v=".*"/>        
            </match>        
        </match>
        <output>
            <copy-all/>
            <tag k="natural" v="tree_m"/>
        </output>
    </translation>
    <translation>
        <name>delete trees without denotation=landmark|natural_monument</name>
        <description>filter trees</description>
        <match type="node">
            <tag k="natural" v="tree"/>
        </match>
        <output>
            <copy-unmatched/>
        </output>        
    </translation>
    <translation>
        <name>rename trees with denotation=landmark|natural_monument back to tree to ensure compatibility</name>
        <description>filter trees</description>
        <match type="node">
            <tag k="natural" v="tree_m"/>
        </match>
        <output>
            <copy-all/>
            <tag k="natural" v="tree"/>
        </output>
    </translation>

 


For maps from 6th of May 2015:

Again changed the algorithm for cycleways with bicycle=yes:

<translation>
	<name>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</name>
	<description>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</description>
		<match mode="and" type="way">
			<tag k="highway" v="footway|path"/>
			<tag k="bicycle" v="yes"/>
		</match>
	<output>
		<copy-all/>
		<tag k="network" v="hcw"/>
	</output>
</translation>

<translation>
	<name>remove network=hcw from Mountain paths</name>
	<description>remove network=hcw from Mountain paths</description>
	<match mode="and">
		<match mode="and" type="way">
			<tag k="network" v="hcw"/>
			<tag k="highway" v="footway|path"/>
		</match>
		<match mode="or">
			<tag k="sac_scale" v=".*"/>
			<tag k="mtb_scale" v=".*"/>
			<tag k="sac:scale" v=".*"/>
			<tag k="mtb:scale" v=".*"/>
			<tag k="mtb_scale_uphill" v=".*"/>
			<tag k="trail_visibility" v="intermediate|bad|horrible|no" />
			<tag k="surface" v="bad|raw|ground|dirt|grass|sand|wood|earth|mud|clay|winter|ice|snow" />
		</match>
	</match>
	<output>
		<copy-all/>
		<tag k="network" v="dummy"/>
	</output>
</translation>

 

 


For maps from 4th of May 2015:

– changed making of network=hcw
I excludes paths tagged with mtb:scale, bad visibility, bad surface from ordinary cycleways

<translation>
    <name>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</name>
    <description>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</description>
    <match mode="or" type="way">
        <tag k="highway" v="cycleway"/>
        <tag k="bicycle" v="designated|official"/>
    </match>
    <output>
        <copy-all/>
        <tag k="network" v="hcw"/>
    </output>
</translation>    

<translation>
    <name>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</name>
    <description>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</description>
    <match mode="and" type="way">
        <tag k="highway" v="footway|path"/>
        <tag k="bicycle" v="yes"/>
    </match>
    <notag k="sac_scale" v=".*"/>
    <notag k="mtb_scale" v=".*"/>
    <notag k="mtb_scale_uphill" v=".*"/>
    <notag k="trail_visibility" v="intermediate|bad|horrible|no" />
    <notag k="surface" v="bad|raw|ground|dirt|grass|sand|wood|earth|mud|clay|winter|ice|snow" />
    <output>
        <copy-all/>
        <tag k="network" v="hcw"/>
    </output>
</translation>

 


For maps from 19th of April 2015:

-added  : New handling of relations with type=boundary cause Mapsforge only resolves relations with type=multipolygon

<translation>
	<name>national parks type=boundary to type=multipolygon</name>
	<description>national parks to multipolygons</description>
	<match mode="and">
		<match mode="or" type="relation">
			<tag k="boundary" v="national_park"/>
			<tag k="boundary" v="protected_area"/>
			<tag k="boundary" v="nature_reserve"/>
			<tag k="leisure" v="national_park"/>
			<tag k="leisure" v="nature_reserve"/>				
		</match>
		<match mode="or" type="relation">
			<tag k="type"  v="boundary"/>
		</match>			
	</match>			
	<output>
		<copy-all/>
		<tag k="type" v="multipolygon"/>
	</output>
</translation>

 

For maps from 13th of March 2015:

-added  :

<translation>
	<name>emergency_access_point ref2name</name>
	<description>mapsforge doesnt address "ref" so ref is transformed to "addr:housenumber"</description>
	<match mode="and" type="node">
		<tag k="highway" v="emergency_access_point"/>
		<tag k="ref" match_id="eap_ref" v="(^[a-zA-Z0-9]{1,8})"/>
	</match>
	<output>
		<copy-all/>
		<tag k="addr:housenumber" from_match="eap_ref" v="{1}"/>
	</output>
</translation>	

<translation>
	<name>railway=station and subway=yes 2 station=subway</name>
	<description>railway=station and subway=yes 2 station=subway</description>
	<match mode="and">
		<tag k="railway" v="station"/>
		<tag k="subway"  v="yes"/>
	</match>
	<output>
		<copy-all/>
		<tag k="station" v="subway"/>
	</output>
</translation>

 


For maps from 21st of December 2014:

-added  :

<translation>
	<name>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</name>
	<description>unify cycleways to network=hcw (previously done by perl a script) 112014 kech61</description>
	<match mode="and" type="way">
		<tag k="highway" v="footway"/>
		<tag k="bicycle" v="yes"/>
	</match>
	<notag k="sac_scale" v=".*"/>
	<output>
		<copy-all/>
		<tag k="network" v="hcw"/>
	</output>
</translation>

 


For maps from 18th of October 2014:

– added: class_bicycle_road
Tagtransformed from class:bicycle(:roadcycling|roadbike|touring|commute)

values tansformed from

  • -3 to cbr-3
  • -2 to cbr-2
  • -1 to cbr-1
  • -0|0|+0 to cbr+0
  • 1|+1 to cbr+1
  • 2|+2 to cbr+2
  • 3|+3 to cbr+3

Priority is class:bicycle, where no class:bicycle is tagged the subtags
class:bicycle(:roadcycling|roadbike|touring|commute) are used to build class_bicycle_road

Ann: I like the idea of the class:bicycle taggroup for road/touring, however only a very few roads are tagged so at now its completely useless for common use.
So the support for this tag is intended for mappers, using the Openandromaps with their own custom themes as a base to further add this tag to OSM database.
If this is’nt done I will stop supporting this tag.

 


For maps from 10th of July 2014:

– added: noexit=ne_yes (Tagtransformed from neoexit=yes)

 


For maps from 29th of June 2014:

– added climbing=yes transformed to climbing=cl_yes

 


For maps from 10th of March 2014:
– filter landuses from highways (elininating wrong tagging in OSM)
– filter layer=-1 from waterways already containing

  • [tag k=“culvert“ v=“yes“/]
  • or[tag k=“covered“ v=“yes“/]
  • or[tag k=“pipeline“ v=“yes“/]
  • or[tag k=“location“ v=“underground“/]
  • or[tag k=“tunnel“ v=“.*“/]

Thanks to Richard!

 


For maps from 5th of February 2014:

– added highway=ford from zoom-level 12
– added ford=yes transformed to ford=fd_yes
– added toll=yes transformed to toll=tl_yes

 


For maps from 29th of January 2014:

– added incline transformed to incline_dir.
rules:
incline_dir=up include: „up“ and all values beginning with a numeric char + .*
incline_dir=down include: „down“ and all values starting with „-“ and one numeric char + .*

 


For maps from 1st of January 2014:

– winter_room=yes transformed to winter_room=wr_yes to work around CommonValueBug
– raw_sac_scale added. For the „official“ maps and themes the preprocessed difficult-scale for mountain hiking will stay as it is.
For the Mappers prefering the full sac_scale rather than the preprozessed one with personal themes I will add the unprozessed sac_scale transformed to the tag „raw_sac_scale“ with all values from T1-T6:

[ways]
[osm-tag key=“raw_sac_scale“ value=“RT1″ zoom-appear=“12″ renderable=“false“/]
[osm-tag key=“raw_sac_scale“ value=“RT2″ zoom-appear=“12″ renderable=“false“/]
[osm-tag key=“raw_sac_scale“ value=“RT3″ zoom-appear=“12″ renderable=“false“/]
[osm-tag key=“raw_sac_scale“ value=“RT4″ zoom-appear=“12″ renderable=“false“/]
[osm-tag key=“raw_sac_scale“ value=“RT5″ zoom-appear=“12″ renderable=“false“/]
[osm-tag key=“raw_sac_scale“ value=“RT6″ zoom-appear=“12″ renderable=“false“/]
[/ways]

This is a kind of hidden feature and will be not announced in the changelog of tag-mapping.
The reason why the T is transformed to RT is the common value bug of mapsforge, making it impossible to tag different keys with the same values.

 


For maps from 26rd of November:

– via_ferrata=0* no longer forces a T4sac_scale/mtbs=6/via_ferrata_flag=yes
– bugfix for highway=motorway_junction (disappearing nodes in links/trunks)

 


For maps from 3rd of November:

– added trees with a name-tag

 

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert