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-mkg...@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
> > > includi