Hi Max,
not sure. What will happen if one uses another filter in the relations file?
Gerd
"Maxim Düster" wrote
> Hi, Gerd,
>
>
>
> the change is caused by the fact that the filter was thought primarily for
> working in relations file inside of the apply{} block and needs that the
> tag given as last parameter is a local tag of the element being processed
> (e.g. a way). But the old code line says: "value =
> filter.filter(tagval,el);", 'el' being the parent relation
> the way is in. That is, in the filter I only have an access to the
> (global) relation's tags, but what I actually need are the tags of the
> (local) element being currently processed.
>
> While applying filters to "plain" elements (those not inside a
> relation, e.g. in points or lines files), 'local_el' and
> 'el' are equal, so my change should not corrupt anything.
>
>
>
> Max
>
>
>
> Gesendet: Donnerstag, 29. Januar 2015 um 11:20 Uhr
> Von: "Gerd Petermann" <
> gpetermann_muenchen@
> >
> An: "
> mkgmap-dev@.org
> " <
> mkgmap-dev@.org
> >
> Betreff: Re: [mkgmap-dev] Patch: New filter "not-contained"
>
>
>
> Hi Maxim,
>
> please can you explain the reason for the change in ValueItem?
>
> Gerd
>
>
> From:
> maxc@
>
> To:
> mkgmap-dev@.org
>
> Date: Wed, 28 Jan 2015 12:12:25 +0100
> Subject: [mkgmap-dev] Patch: New filter "not-contained"
>
>
> Hello!
>
> I've attached a patch with a new filter that helps while processing,
> for example, public transport relations. The reason: there can be multiple
> route relations with the same ref attribute (for example, one for the
> forward direction, one for the return direction), combined to a
> route_master relation.
>
> If you want a name for a way to contain the refs of all of the routes
> going through that way, you have a problem that some refs will be present
> more than once, similar to "1,1,2,2,2" (if we assume that route
> 1 has two instances, and route 2 - three instances).
>
> The new filter helps to circumvent this. It takes 2 parameters: a
> delimiter (a comma in the example above) and the name of a tag containg
> the list. The filter works a bit like the "not-equal" filter,
> but it doesn't just compare two values; instead it looks if the
> tag's value (to which the filter is being applied) is contained in the
> list from the (other) given tag. If it is not the case, the value can be
> added to the list, otherwise the tag is considered unset.
>
>
>
> Simple example for relations file:
>
>
>
> type=route & route=bus & ref=* {
> apply {
> set
> route_ref='$(route_ref),${ref|not-contained:,:route_ref}'
> | '$(route_ref)' | '${ref}';
> }
> }
>
>
>
> Here, ref value is only added to route_ref if it is not already contained
> in that list (with separator ','). Otherwise, the value of
> route_ref is unchanged.
>
> Cheers!
> Max
>
>
> _______________________________________________ mkgmap-dev mailing list
> mkgmap-dev@.org
>
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>
> _______________________________________________ mkgmap-dev mailing list
> mkgmap-dev@.org
>
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>
>
>
>
>
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev@.org
>
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
--
View this message in context:
http://gis.19327.n5.nabble.com/Patch-New-filter-not-contained-tp5831668p5831841.html
Sent from the Mkgmap Development mailing list archive at Nabble.com.
_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev