[mkgmap-dev] Failure to understand apply logic in relations - or failure in the logic
From Felix Hartmann extremecarver at gmail.com on Thu Nov 25 17:00:36 GMT 2021
Oh sorry - no my mistake was different - I used the wrong brackets. However I could not find anywhere where this is documented. working: set route_name_hiking1 = '$*(route_name_hiking1)* + ${name|not-contained: + :route_name_hiking1}' | 'IWN ${name}' | *'$(route_name_hiking1)*' | 'IWN' not working: set route_name_hiking1 = '$*{route_name_hiking1}* + ${name|not-contained: + :route_name_hiking1}' | 'IWN ${name}' | *'${route_name_hiking1}*' | 'IWN' Why do we have to use standard brackets when referencing a value inside the apply action? Usually for referencing a value we need to use curly {} brackets... On Thu, 25 Nov 2021 at 16:17, Felix Hartmann <extremecarver at gmail.com> wrote: > I think there is a bug in mkgmap. > > This line works as intended: > set route_name_hiking1 = '${route_name_hiking1} + ${name|not-contained: + > :route_name_hiking1}' | 'IWN ${name}' | '${route_name_hiking1}' | 'IWN' > while this line in the relations file fails to work as expected - the part > after the + is not added - or at least not visible (strangely the map size > is pretty similar). > set route_name_hiking1 = '${route_name_hiking1} + ${name}' | 'IWN ${name}' > | '${route_name_hiking1}' | 'IWN' > > > So only by including the not-contained filter ithe relations file is > actually adding the names of the routes after each other - while they are > not added without such a filter. > > On Wed, 24 Nov 2021 at 10:45, Felix Hartmann <extremecarver at gmail.com> > wrote: > >> I will try your example to see where it goes wrong. Apply_once is about >> forward and backward relations. It should not matter: >> https://www.mkgmap.org.uk/pipermail/mkgmap-dev/2010q1/006268.html >> >> On Tue, 23 Nov 2021, 19:32 Mike Baggaley <mike at tvage.co.uk> wrote: >> >>> Hi Felix, >>> >>> >>> >>> This is what I have in my relations file for routes: >>> >>> >>> >>> type=route & state!=proposed & route~'.*bicycle.*' & network~'.*ncn.*' >>> & ref~'\d*' { apply_once { set nationalbicycleroute=yes; set rn='$(rn) >>> & ${ref|not-contained: & :rn}' | '$(rn)' | '${ref}'; set nrn='$(nrn) & >>> ${ref|not-contained: & :nrn}' | '$(nrn)' | '${ref}'; } } >>> >>> type=route & state!=proposed & route~'.*bicycle.*' & network~'.*rcn.*' >>> & ref~'\d*' { apply_once { set regionalbicycleroute=yes; set rn='$(rn) >>> & ${ref|not-contained: & :rn}' | '$(rn)' | '${ref}'; } } >>> >>> type=route & state!=proposed & (route~'.*foot.*' | route~'.*hiking.*') & >>> network~'.*[nr]wn.*' & name~".*\(.*\)" { set name='${name|subst >>> :"\(.*\)~>"}'} >>> >>> type=route & state!=proposed & (route~'.*foot.*' | route~'.*hiking.*') & >>> network~'.*nwn.*' & name=* { apply_once { set nationalhikingroute=yes; >>> set rn='$(rn) & ${name|not-contained: & :rn}' | '$(rn)' | '${name}'; >>> set nrn='$(nrn) & ${name|not-contained: & :nrn}' | '$(nrn)' | >>> '${name}'; set nwrn='$(nwrn) & ${name|not-contained: & :nwrn}' | '$(nwrn)' >>> | '${name}'; } } >>> >>> type=route & state!=proposed & (route~'.*foot.*' | route~'.*hiking.*') & >>> network~'.*rwn.*' & name=* { apply_once { set regionalhikingroute=yes; >>> set rn='$(rn) & ${name|not-contained: & :rn}' | '$(rn)' | '${name}'; } } >>> >>> >>> >>> The most significant difference is that I have apply_once rather than >>> apply. >>> >>> >>> >>> Hope this helps, >>> >>> Mike >>> >>> >>> >>> *From:* Felix Hartmann [mailto:extremecarver at gmail.com] >>> *Sent:* 23 November 2021 13:31 >>> *To:* Development list for mkgmap <mkgmap-dev at lists.mkgmap.org.uk> >>> *Subject:* [mkgmap-dev] Failure to understand apply logic in relations >>> - or failure in the logic >>> >>> >>> >>> route=hiking { apply { set route=hiking; set route_name = '${route_name} >>> & ${name}' | '${name}'; add route_ref = '${ref}'; } } >>> >>> >>> >>> I would expect that this rule if several relations are matching one >>> line, adds all names of route=hiking relations to the route_name variable >>> separated by "&". However it is only adding the first found. >>> >>> >>> >>> Where is my mistake? >>> >>> >>> >>> -- >>> >>> Felix Hartman - Openmtbmap.org & VeloMap.org >>> >>> >>> >> > > -- > Felix Hartman - Openmtbmap.org & VeloMap.org > > -- Felix Hartman - Openmtbmap.org & VeloMap.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20211125/817c57a8/attachment-0001.html>
- Previous message: [mkgmap-dev] Failure to understand apply logic in relations - or failure in the logic
- Next message: [mkgmap-dev] Failure to understand apply logic in relations - or failure in the logic
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list