Hi Bernd,
I think the no-dup-rule-evaluation-v2.patch solves this problem.
The logging function for the style stats now shows more clearly
how a single rule in the style file is translated into one or more rules,
e.g. (a |b | c) & (e | f) { action xyz}
is translated to
(a ) & (e | f) { action xyz}
(b) & (e | f) { action xyz}
(c) & (e | f) { action xyz}
Without the patch it is possible that each part is executed.
The style stats will now look like this:
INFO: uk.me.parabola.mkgmap.osmstyle.stats 63240001.o5m: points stats (rule/evals/true)
rule-id: 16 ((($public_transport='platform')&($ref=*|$route_ref=*)) | ((($highway='bus_stop')|(($railway='tram_stop')|(($railway='halt')|($railway='station'))))&($ref=*|$route_ref=*))) {set ref='${ref}(${route_ref})';}/95/60
INFO: uk.me.parabola.mkgmap.osmstyle.stats 63240001.o5m: points stats (rule/evals/true)
rule-id: 16 ((($highway='bus_stop')&($ref=*|$route_ref=*)) | ((($railway='tram_stop')|(($railway='halt')|($railway='station')))&($ref=*|$route_ref=*))) {set ref='${ref}(${route_ref})';}/984/490
INFO: uk.me.parabola.mkgmap.osmstyle.stats 63240001.o5m: points stats (rule/evals/true)
rule-id: 16 ((($railway='tram_stop')&($ref=*|$route_ref=*)) | ((($railway='halt')|($railway='station'))&($ref=*|$route_ref=*))) {set ref='${ref}(${route_ref})';}/0/0
INFO: uk.me.parabola.mkgmap.osmstyle.stats 63240001.o5m: points stats (rule/evals/true)
rule-id: 16 ((($railway='halt')&($ref=*|$route_ref=*)) | (($railway='station')&($ref=*|$route_ref=*))) {set ref='${ref}(${route_ref})';}/11/11
INFO: uk.me.parabola.mkgmap.osmstyle.stats 63240001.o5m: points stats (rule/evals/true)
rule-id: 16 # Part of the previous OR expression: ((($railway='station')&($ref=*|$route_ref=*))) {set ref='${ref}(${route_ref})';}/23/9
Gerd
> From: weigelt.bernd@web.de
> To: mkgmap-dev@lists.mkgmap.org.uk
> Date: Mon, 2 Feb 2015 09:35:26 +0100
> Subject: Re: [mkgmap-dev] Bug in handling of bus stops
>
> Am Sonntag, 1. Februar 2015, 11:42:38 schrieb GerdP:
> > This is clearly not intended and should be fixed.
>
> Hi
> FYI
>
> Franco fixed this in May 2014 in our style with this workaround
>
> https://github.com/berndw1960/aiostyles/commit/0209b139bd7ec07ff24a31d86ba30194b5b2f268
>
> public_transport=platform &
> (amenity=bus_station |
> highway=bus_stop |
> railway=tram_stop |
> railway=halt |
> railway=station)
>
> {
> #eliminate double ^ or double - ; no idea why they are entered twice otherwise
> delete public_transport;
> }
>
>
> Bernd
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev@lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev