Hi all,

I've implement a quick hack to change -is-in-landuse option to -is-in-hook. My 
first test already showed the problem with the lazyness of the test:
I used it with this --x-is-in-hook="landuse=cemetery,amenity=grave_yard, 
amenity=hospital, leisure=pitch"
and a rule
mkgmap:is-in:leisure-pitch=* {echotags "x"}
and got (besides others)
Way 103535225 [leisure=park, mkgmap:admin_level2=DEU, 
mkgmap:admin_level4=Niedersachsen, mkgmap:admin_level6=Landkreis Oldenburg, 
mkgmap:admin_level8=Wildeshausen, mkgmap:is-in:leisure-pitch=yes, 
mkgmap:postcode=27793, surface=grass]

I wondered why a park is inside a pitch. And it is not, only its centre is 
because the pitch is inside the park.
Of course the same problem occurs with r4397, so I have to change the code to 
test more (maybe all points), not just the center.

Gerd

________________________________________
Von: mkgmap-dev <[email protected]> im Auftrag von Gerd 
Petermann <[email protected]>
Gesendet: Dienstag, 17. Dezember 2019 14:32
An: Pinns UK; [email protected]
Betreff: Re: [mkgmap-dev] Commit r4397: implement and document new option 
--is-in-landuse=value[, value...]

Hi Ticker,

I agree it would be good to know.
Problem: it would require a completely different implementation and probably a 
lot more CPU power to compute that information.

The current test is very lazy, it works like the one for the mkgmap:admin_level 
tags. It computes a single point that represents the OSM element
and checks if that point is within or on the boundary of any landuse=x polygon. 
I think that was OK for the original problem (building inside 
landuse=residential),
but it was already problematic with the idea to set a maxspeed value for a 
major highway "inside" a residential area.

So, what results do we get?
- A point is either outside, inside or on the boundary of a polygon.
- A line or polygon can be outside, inside, on the boundary or partly 
overlapping a single polygon. What would be the result for a way that builds a 
part of the boundary of two natural=wood multipolygons? What would be the 
result when the way crosses such a boundary, but is always inside one of the 
natural=wood polygons? Also, a way can be inside one polygon and partly inside 
another, as OSM allows overlapping polygons.
Think of a landuse=forest multipolygon with an inner way natural=water . Is the 
inner way inside, outside or on the boundary?
Remenber, the hook doesn't "see" the multipolygon, it processes the results of 
the MultipolygonCutter.

For JOSM I've implemented some area operators like a inside b or vice versa, 
also a not inside b, but they only work on nodes and polygons, and they are 
rather slow.
See https://josm.openstreetmap.de/ticket/10391
I assume you have something similar in mind?

Gerd




________________________________________
Von: Pinns UK <[email protected]>
Gesendet: Dienstag, 17. Dezember 2019 13:08
An: Gerd Petermann; [email protected]
Betreff: Re: AW: [mkgmap-dev] Commit r4397: implement and document new option 
--is-in-landuse=value[, value...]

Hi Gerd

That would be very useful

r

Nick

On 17/12/2019 11:15, Gerd Petermann wrote:
> Hi Nick,
>
> OK, I already expected this when I asked if landuse is enough...
> I'll add code to support all polygons and see how to document it. I guess it 
> should be no problem when I revert the changes in r4397.
>
> Gerd
>
> ________________________________________
> Von: mkgmap-dev <[email protected]> im Auftrag von Pinns 
> UK <[email protected]>
> Gesendet: Dienstag, 17. Dezember 2019 11:53
> An: [email protected]
> Betreff: Re: [mkgmap-dev] Commit r4397: implement and document new option 
> --is-in-landuse=value[, value...]
>
> Hi Gerd,
>
> Oops, I forgot to look at the documentation!
>
> Personally , I think it is such a useful option which will open up a host of 
> new possibilities when/if you are able to extend this to include all polygons.
>
> Again, thanks for all your hard work!
>
> Nick
>
> On 17/12/2019 09:42, Pinns UK wrote:
>
> Hi Gerd
>
> I've been able to change footpaths on (some?)  amenity graveyards to paths by 
> just setting the lu:cemetery to yes
>
> I first tried :
>
> amenity=grave_yard {set landuse=cemetry;echotags"change2landuse"}
>
>    mkgmap:lu:cemetery=*  & highway=footway  {set highway=path}
>
>
> however this did not work , ie footpaths on cemeteries didn't change to paths 
>  and the echotags didn't show any :lu:cemetery
>
> then I tried
>
>   amenity=grave_yard {set mkgmap:lu:cemetery=yes}
>
>    mkgmap:lu:cemetery=*  & highway=footway  {set highway=path}
>
>   This seems to work for some (?)  graveyards (Haven't checked this on 2 
> graveyards only)
>
> My question is ,does mkgmap check if highways cross a polygon   as soon as it 
> parses mkgmap:lu:cemetery=*  & highway=footway
>
> or are the checks done before 'Lines' are parsed?
>
> If the user can set the value then what ,if any ,are the effects - ie
>
> natural=wood { set mkgmap:lu:cemetery=yes}
>
>   If this works then Arndt seems to have a point?
>
> r
>
> Nick
>
>
> Does mkgmap check if graveyard
>
> On 15/12/2019 12:28, Arndt Röhrig wrote:
> is-in-landuse, nice function!
>
> with this new option i set acces=no for bicycles when the way is within a 
> cemetary. (& no tag say, that bicycle is ok)
>
> There are still a few polys where that could be used. amenity=grave_yard, 
> amenity=hospital, leisure=pitch ....
>
> maybe its better to name the option is-in-polygone:polygone=value
>
> Arndt
>
>
>
> svn commit < [email protected]<mailto:[email protected]>> hat am 15. 
> Dezember 2019 um 10:05 geschrieben:
>
>
> Version mkgmap-r4397 was committed by gerd on Sun, 15 Dec 2019
>
> implement and document new option --is-in-landuse=value[,value...]
> - svn rename ResidentialHook.java to LanduseHook.java
> - remove support for undocumented option --residential-hook=false
> - warn if style uses mkgmap:residential which was replaced by 
> mkgmap:lu:residential
>
>
> http://www.mkgmap.org.uk/websvn/revision.php?repname=mkgmap&rev=4397
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]<mailto:[email protected]>
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> On 15/12/2019 09:05, svn commit wrote:
>
> Version mkgmap-r4397 was committed by gerd on Sun, 15 Dec 2019
>
> implement and document new option --is-in-landuse=value[,value...]
> - svn rename ResidentialHook.java to LanduseHook.java
> - remove support for undocumented option --residential-hook=false
> - warn if style uses mkgmap:residential which was replaced by 
> mkgmap:lu:residential
>
>
> http://www.mkgmap.org.uk/websvn/revision.php?repname=mkgmap&rev=4397
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]<mailto:[email protected]>
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
>
>
>
>
> _______________________________________________
> mkgmap-dev mailing list
> [email protected]<mailto:[email protected]>
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Attachment: is-in-hook-v0.patch
Description: is-in-hook-v0.patch

_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to