logo separator

[mkgmap-dev] mergeroads branch - how to set street labels in style files

From WanMil wmgcnfg at web.de on Thu Oct 10 20:33:04 BST 2013

Hi all,

I am thinking about how to simplify setting the four possible labels of 
streets / POIs.

This is what I think how it works:
Each street and POI can have four different labels.
At the moment the following procedure is used to assign them:
All labels are filled with the values of
name
mkgmap:display_name
mkgmap:ref (splitted by ";")

This means in detail:
1st label: highway shield for the first reference. Usually the name of 
the street is added separated with a space. Some Garmins display the 
whole label shielded, some show only the part until the first 
whitespace. Some Garmins show this as street name when the street is 
selected and they show the 2nd when the details of the street are shown 
(Oregon 400 behaviour).

2nd-4th label: in case mkgmap:display_name is set it is used as second 
label. The value of mkgmap:ref is splitted by separator ";" and fills 
the rest of the available labels.

In case the 1st label starts with a shield the 2nd label is usually 
displayed in routing instructions.

Street search indexes all four labels. So a street with the following 
labels:
1st: <shield>L276 Laacher Straße
2nd: Laacher Straße (L276)
3rd: L276
can be searched via all three labels (except the shield character in the 
1st label).

===========================

My questions:
- Do you think the current behaviour is useful?

- @Steve: Would it be possible to index not all labels?
Change the upper example to:
1st: <shield>L276 Laacher Straße
2nd: Laacher Straße (L276)
3rd: L276
4th: Laacher Straße
In case the first label starts with a shield and there are at least 
three labels, then start indexing at the 3rd label. In any case skip the 
shielded label. This removes all strings with a shield which I think are 
not useful for address search.
I am not sure if that really makes sense but just let us thinking around 
... :-)

- Should we change the usage of the labels to the following algorithm:
Use:
name
mkgmap:display_name
mkgmap:streetname
mkgmap:ref (splitted by ";")
Only add labels if they don't equal the labels before. So if 
mkgmap:streetname is the same like the name of the street it will not be 
used as label.

I am happy to hear about your opinions and ideas!
Have fun!
WanMil





More information about the mkgmap-dev mailing list