logo separator

[mkgmap-dev] is_in with own Tags?

From Ticker Berkin rwb-mkgmap at jagit.co.uk on Mon Feb 22 10:33:59 GMT 2021

Hi Jan

To suppress a point POI if is_in an area/polygon that may also generate
one:

leisure=stadium & sport=swimming & mkgmap:area2poi!=* &
  is_in(leisure, stadium, in_or_on)=false &
  is_in(leisure, water_park, in_or_on)=false &
  is_in(leisure, swimming_pool, in_or_on)=false
  {...stadium swim...} [0x...]

and repeat for the other types

To suppress one derived from a polygon if also in another:

leisure=stadium & sport=swimming & mkgmap:area2poi=* &
  is_in(leisure,
water_park, in_or_on)=false &
  is_in(leisure, swimming_pool,
in_or_on)=false
  {...stadium swim...} [0x...]

etc. ie similar to above but remove the test for is_in own type

There is a problem with this however; if the centre/placement point of
the outer polygon falls in_or_on the inner, neither will generate a
POI!

Ticker

On Mon, 2021-02-22 at 10:52 +0100, jan meisters wrote:
> Hi Ticker,
> 
> thank you - yes, that explains a lot of my troubles.
> 
> But - if I got you right: isn`t this what I need?
> 	For an area2poi POI, it is almost certain that it is_in(its own
> type)
> 	but you can exclude it if is_in(the other types).
> Do you have an example for the mentioned exclusion?
> 
> Concerning deletion: it seemed to be easier to delete unwanted POIs
> while testing, but indeed I prefer to handle this by tagging later.
> For sure I want to miss as little information as possible, but
> distinguish the available - I dropped the corresponding naming
> actions for simplification, and the mopup at the end also ;-)
> 
> Jan
> 
> 
> > Am 21.02.2021 um 22:32 schrieb Ticker Berkin <
> > rwb-mkgmap at jagit.co.uk>:
> > 
> > Hi Jan
> > 
> > I don't think you'll be able to do what you hope for.
> > 
> > Each possible POI comes either:
> > a) direct from a point
> > b) from a polygon if --add-pois-to-areas, setting
> > mkgmap:area2poi=true
> >   This happens regardless of any rules etc.
> > 
> > All you can do in the points rule processing is choose to display a
> > POI
> > or not.
> > 
> > For a direct POI, you can test if is_in any of the types of polygon
> > and
> > suppress it if you choose.
> > 
> > For an area2poi POI, it is almost certain that it is_in(its own
> > type)
> > but you can exclude it if is_in(the other types).
> > 
> > There is no is_in() test for being in a polygon (of some type) that
> > is
> > in another polygon (of same or any other type). 
> > 
> > It is clearer to apply these tests to the POI generation rule
> > rather
> > than {delete} the tag to be tested. For {delete} to work, it has to
> > be
> > done before the rule that might generated the [POI]. It is obscure
> > to
> > show the {delete} afterwards, even though, with careful rule
> > ordering,
> > the same effect could be achieved. 
> > 
> > Does this make sense?
> > 
> > Ticker
> > 
> > On Sun, 2021-02-21 at 18:04 +0100, jan meisters wrote:
> > > (Still problems with attachments. Now with link)
> > > 
> > > Hi Ticker,
> > > 
> > > I want to ask for relevant swimmings, one after another, and
> > > after
> > > every rule exclude further swimmings inside aleady matched areas.
> > > In the end the style should dismiss e.g. leisure=swimming_pools
> > > which
> > > lay in a (leisure=stadium & sport=swimming) already matched:
> > > 
> > > 1.	leisure=stadium & sport=swimming {name '${name}
> > > (stadium
> > > swim)‘ | '(stadium swim)'} [0x2d09 resolution 24]
> > > 	sport=swimming & is_in(leisure,stadium,in_or_on)=true &
> > > is_in(sport,swimming,in_or_on)=true {delete sport}
> > > 2.	leisure=water_park & sport=swimming {name '${name}
> > > (waterpark swim)‘ | '(waterpark swim)'} [0x2d09 resolution 24]
> > > 	sport=swimming & is_in(leisure, water_park,in_or_on)=true &
> > > is_in(sport,swimming,in_or_on)=true {delete sport}
> > > 3.	leisure=swimming_pool & sport=swimming {name '${name}
> > > (pool
> > > swim)‘ | ‚(pool swim)'} [0x2d09 resolution 24]
> > > 	sport=swimming & is_in(leisure, swimming_pool,in_or_on)=true &
> > > is_in(sport,swimming,in_or_on)=true {delete sport}
> > > 4.	…
> > > 
> > > With the above ruleset I have correct results for nodes so far,
> > > but
> > > not for polygons.
> > > The is_in-rule seems to lack the epression of
> > > is_n(leisure=stadium &
> > > sport=swimming), instead matches a polygons own swimming as well 
> > > -
> > > what I don´t want.
> > > But I´ve got no clue how to write it.
> > > 
> > > In swim.osm the surrounding left stadium has swimming, the right
> > > one
> > > not. Inside both stadium, water_park and sports_centre as area
> > > and
> > > poi. (See http://files.mkgmap.org.uk/detail/500 for the following
> > > screenshots)
> > > 
> > > Above ruleset gives this: 1-result.jpg
> > > In left stadium pois for stadium/swim (area, area inside, poi
> > > inside), nothing else: correct.
> > > In right stadium pois for all swim inside except for the areas:
> > > wrong.
> > > 
> > > What I expect is this: 2-expected.jpg
> > > Left as before, but In the right pois for all swim inside
> > > including
> > > areas.
> > > 
> > > Hope I made it clearer
> > > Jan
> > > 
> > > 
> > > > Am 21.02.2021 um 13:01 schrieb Ticker Berkin <
> > > > rwb-mkgmap at jagit.co.uk>:
> > > > 
> > > > Hi Jan
> > > > 
> > > > I'm slightly confused as to what you are trying to do here when
> > > > you
> > > > say
> > > > it works for nodes but not polygons.
> > > > 
> > > > After you've output a POI from the first rule what are you
> > > > trying
> > > > to
> > > > do?
> > > > 
> > > > Ticker
> > > > 
> > > > On Sun, 2021-02-21 at 10:42 +0100, jan meisters wrote:
> > > > > Hi Gerd,
> > > > > 
> > > > > my first impression didn´t get trough further test.
> > > > > 
> > > > > This works for nodes, but not for polygons:
> > > > > 	leisure=stadium & sport=swimming [0x2d09 resolution 24]
> > > > > 	sport=swimming & is_in(leisure,stadium,in_or_on)=true &
> > > > > is_in(sport,swimming,in_or_on)=true {delete sport}
> > > > > 
> > > > > It matches it´s own swimming tag as well, not only when
> > > > > stadium
> > > > > is
> > > > > given.
> > > > > Tried various spellings/brackets, but I can´t get it to work
> > > > > for
> > > > > stadium and swimming as a combination only.
> > > > > I guess we don´t have a syntax for this?
> > > > > 
> > > > > Attached a small example.
> > > > > 
> > > > > Jan
> > > > > 
> > > > > 
> > > > > > Am 16.02.2021 um 18:28 schrieb jan meisters <
> > > > > > jan_m23 at gmx.net>:
> > > > > > 
> > > > > > Hi Gerd,
> > > > > > 
> > > > > > so easy - that works!
> > > > > > Thanks for helping me out
> > > > > > Jan
> > > > > > 
> > > > > > > Am 16.02.2021 um 17:44 schrieb Gerd Petermann <
> > > > > > > gpetermann_muenchen at hotmail.com>:
> > > > > > > 
> > > > > > > Hi Jan,
> > > > > > > 
> > > > > > > is_in(leisure,park,...) & is_in(sport,swimming,...)
> > > > > > > should work.
> > > > > > > 
> > > > > > > Gerd
> > > > > > > 
> > > > > > > ________________________________________
> > > > > > > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk>
> > > > > > > im
> > > > > > > Auftrag von jan meisters <jan_m23 at gmx.net>
> > > > > > > Gesendet: Dienstag, 16. Februar 2021 17:31
> > > > > > > An: Development list for mkgmap
> > > > > > > Betreff: Re: [mkgmap-dev] is_in with own Tags?
> > > > > > > 
> > > > > > > Hi Joris,
> > > > > > > 
> > > > > > > thanks for stating - I guessed something like that.
> > > > > > > 
> > > > > > > What I want is to is_in for a tag-combination, e.g.
> > > > > > > leisure=park
> > > > > > > & sport=swimming.
> > > > > > > I have a poi-rule for park&swimming first and further
> > > > > > > want to
> > > > > > > exclude swimmings inside matching polygons.
> > > > > > > 
> > > > > > > Do I have another option to define the combination so
> > > > > > > that it
> > > > > > > can
> > > > > > > be seen by is_in?
> > > > > > > 
> > > > > > > Thanks
> > > > > > > Jan
> > > > > > > 
> > > > > > > > Am 16.02.2021 um 14:48 schrieb Joris Bo <
> > > > > > > > jorisbo at hotmail.com>:
> > > > > > > > 
> > > > > > > > Hi Jan
> > > > > > > > 
> > > > > > > > As far as i understood this function really checks the
> > > > > > > > polygons
> > > > > > > > around the poi to check if the poi-coordinates are
> > > > > > > > located
> > > > > > > > within the polygon specified.
> > > > > > > > It can not check variables because they don't have an
> > > > > > > > outline.
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > Met vriendelijke groeten,
> > > > > > > > 
> > > > > > > > Joris Bo
> > > > > > > > jorisbo at hotmail.com
> > > > > > > > 
> > > > > > > > -----Oorspronkelijk bericht-----
> > > > > > > > Van: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk
> > > > > > > > >
> > > > > > > > Namens
> > > > > > > > jan meisters
> > > > > > > > Verzonden: dinsdag 16 februari 2021 14:12
> > > > > > > > Aan: Development list for mkgmap <
> > > > > > > > mkgmap-dev at lists.mkgmap.org.uk>
> > > > > > > > Onderwerp: [mkgmap-dev] is_in with own Tags?
> > > > > > > > 
> > > > > > > > Hi all,
> > > > > > > > 
> > > > > > > > I try to use is_in to fetch pois inside own invented
> > > > > > > > tags,
> > > > > > > > e.g.:
> > > > > > > > 
> > > > > > > >   leisure=park {add processed=yes} [0x2c06 resolution
> > > > > > > > 24
> > > > > > > > continue with_actions]
> > > > > > > >   leisure=swimming_pool &
> > > > > > > > is_in(processed,yes,in_or_on)=true
> > > > > > > > {delete leisure}
> > > > > > > > 
> > > > > > > > This fails, however „is_in(leisure,park,in_or_on)=true“
> > > > > > > > works
> > > > > > > > in the example.
> > > > > > > > Could someone explain where I´m wrong?
> > > > > > > > 
> > > > > > > > Thanks
> > > > > > > > Jan
> > > > > > > > _______________________________________________
> > > > > > > > mkgmap-dev mailing list
> > > > > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > > > > > _______________________________________________
> > > > > > > > mkgmap-dev mailing list
> > > > > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > > > > _______________________________________________
> > > > > > > mkgmap-dev mailing list
> > > > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > > > > _______________________________________________
> > > > > > > mkgmap-dev mailing list
> > > > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > > > _______________________________________________
> > > > > > mkgmap-dev mailing list
> > > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > > _______________________________________________
> > > > > mkgmap-dev mailing list
> > > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > > _______________________________________________
> > > > mkgmap-dev mailing list
> > > > mkgmap-dev at lists.mkgmap.org.uk
> > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > > _______________________________________________
> > > mkgmap-dev mailing list
> > > mkgmap-dev at lists.mkgmap.org.uk
> > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> > _______________________________________________
> > mkgmap-dev mailing list
> > mkgmap-dev at lists.mkgmap.org.uk
> > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev


More information about the mkgmap-dev mailing list