[mkgmap-dev] Patch: New filter "not-contained"
From GerdP gpetermann_muenchen at hotmail.com on Thu Jan 29 15:30:30 GMT 2015
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 at .org > " < > mkgmap-dev at .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 at .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 at .org > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > _______________________________________________ mkgmap-dev mailing list > mkgmap-dev at .org > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > > > > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at .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.
- Previous message: [mkgmap-dev] Patch: New filter "not-contained"
- Next message: [mkgmap-dev] Patch: New filter "not-contained"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list