Hi Ticker,
thanks - but the rules are still not asking for is_in(stadium-wth-sport).
If I insert is_in(sport) it´s still for is_in(stadium) & is_in(sport) - an own
(sport) must match.
I have to give up my idea so far.
If even you has no suggestion how to write the above - what should I do.
Maybe it is simply undefinable, as you said before.
Nevertheless, the negation-syntax unifies the handling of POIs and area2pois :-)
Jan
> Am 22.02.2021 um 11:33 schrieb Ticker Berkin :
>
> 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