This bug was highlighted in r3334 when the test public_transport=platform was 
added to these four rules in the default points style file (lines 45-63):

(public_transport=platform | highway=bus_stop | railway=tram_stop | 
railway=halt | railway=station)
& (ref=* | route_ref=*) {
  set ref='${ref|def:}(${route_ref})';
}
(public_transport=platform | highway=bus_stop | railway=tram_stop | 
railway=halt | railway=station)
& lit=yes & (shelter=yes | covered=yes)
{
  set ref='${ref|def:}*';
}
(public_transport=platform | highway=bus_stop | railway=tram_stop | 
railway=halt | railway=station)
& lit!=yes & (shelter=yes | covered=yes)
{
  set ref='${ref|def:}+';
}
(public_transport=platform | highway=bus_stop | railway=tram_stop | 
railway=halt | railway=station)
& (shelter=no | covered=no)
{
  set ref='${ref|def:}-';
}

What happens is that if a node has two of the tags in the list

public_transport=platform | highway=bus_stop | railway=tram_stop | railway=halt 
| railway=station

then the node is processed twice by each rule, so the route_ref and the shelter 
marker (*, + or -) are doubled-up. Looking at 
https://www.openstreetmap.org/node/1424432523 - this node is tagged 
public_transport=platform and highway=bus_stop. Prior to r3334, the node had 
only one tag that matched and there was no doubling-up. From r3334 onwards, 
there are two tags that match and the result is Agglo Hérault Méditerranée: 
(1;2;3;4;5,4,4,3,3)(1;2;3;4;5,4,4,3,3)++ Gare SNCF. I believe it is not 
intended that style rules should work in this way, therefore it is a bug in the 
code. In which case it is a question for the Java experts.

Adrian

                                          
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to