logo separator

[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>


More information about the mkgmap-dev mailing list