logo separator

[mkgmap-dev] Handling of refs

From WanMil wmgcnfg at web.de on Thu May 30 12:13:18 BST 2013

Hi,

I tried to remove the name from motorway_links and other _links.
My first approach was simple:
highway=motorway_link { delete name }

This changed nothing! Mmmh, I looked into the source code and observed 
that the action
{ name 'abc' }
is different to
{ set name='abc' }

After using { name 'abc' } it is not possible to remove or to change the 
name using the style. So I changed all rules to
{ set name='abc' }

This improved things a bit but the refs were still displayed. Then I 
noticed that there is a lot of automatic name handling in the 
StyledConverter:

The ref is composed of the tags mkgmap:display_name, ref, int_ref, 
nat_ref and reg_ref.
If there is no name set the composed ref is used as name.

So the final rule to remove the name from the motorway_link is
highway=motorway_link { delete name; delete mkgmap:display_name; delete 
ref; delete ref; delete int_ref; delete nat_ref; delete reg_ref }

I think this is not very intuitive?! Without having a look into the 
source code I would have never been able to remove the name.

I wonder if it would be better to implement these hard coded rules 
within the style so anybody can see what happens and can easily 
influence the naming:

1. Create a new mkgmap tag mkgmap:ref which is used to set the ref field 
in the garmin map. Without setting mgkmap:ref the ref field will be 
empty. This makes mkgmap:display_name superfluous. Another advantage is 
that the ref, nat_ref etc. tags can be removed from the builtin-tag-list.

2. Set the name using the tag mkgmap:name. Remove the { name 'abc' } 
action. This might be controversial and requires changes in all styles.

What do you think?

WanMil


More information about the mkgmap-dev mailing list