[mkgmap-dev] More method options for is_in function
From Gerd Petermann gpetermann_muenchen at hotmail.com on Tue Feb 11 10:16:10 GMT 2020
Hi Ticker, "but this isn't necessary for the IN/IN_OR_ON" Why not for IN? Gerd ________________________________________ Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag von Ticker Berkin <rwb-mkgmap at jagit.co.uk> Gesendet: Dienstag, 11. Februar 2020 11:07 An: Development list for mkgmap Betreff: Re: [mkgmap-dev] More method options for is_in function Hi Gerd Case 1 looks like 2 independent polygons that happen to be touching. Before Wood2 is planted, Tree1 is on the edge of Wood1. Should mapping Wood2 change this state? - I don't know. If these get merged anyway to handle mp-cutting then we have forced the answer - it will no longer be ON. Yes to the rest. POINT ON test should invoke merging, but this isn't necessary for the IN/IN_OR_ON Ticker On Tue, 2020-02-11 at 09:43 +0000, Gerd Petermann wrote: > Hi Ticker, > > I've attached a sample file. Assume point rule > natural=tree & isin(landuse,forest,ON)=true {...} > > For me, tree1 is not ON, but IN, so result should be false > ON would be okay for tree2 and tree4 > The node tree3 is obbiously IN but if multipolygon cutting devides > the mp exactly on the line it would be on two boundaries unless we > merge them again for the test. > > Reg. performance it probably doesn't matter much, these cases are > rare and the point-in-polygon test is rather fast compared to the > line-in-polygon test. > > Gerd > > > ________________________________________ > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag > von Ticker Berkin <rwb-mkgmap at jagit.co.uk> > Gesendet: Dienstag, 11. Februar 2020 10:05 > An: Development list for mkgmap > Betreff: Re: [mkgmap-dev] More method options for is_in function > > Hi Gerd > > It's important to handle the polygons as merged for the LINE and > POLYGON processing, so that internal splitting by multi-polygon > processing doesn't affect the answer relating to ON queries. For > overlapping polygons, however, the ON query is ambiguous and I'm not > sure how much effort it is worth taking to resolve it with respect to > the edges of one polygon that are within the other. > > I've just seen your next posting. > > For POINTs: I agree, much the same as above applies to the ON query. > > So, we need to decide on the policy for ON queries relating to the > OSM > defined edges of one polygon within another polygon, or just ignore > the > issue on the grounds that the situation is unlikely and it is an > arbitr > ary decision anyway. > > Ticker > > On Tue, 2020-02-11 at 08:31 +0000, Gerd Petermann wrote: > > Hi Ticker, > > > > my understanding is that is_in(.., 'on') returns true if the point > > is > > on the boundary, not in or out. > > With line and polygon rules we merge overlapping polygons before we > > test, so I tried to do something similar with points. > > > > Gerd > > > > ________________________________________ > > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im Auftrag > > von Ticker Berkin <rwb-mkgmap at jagit.co.uk> > > Gesendet: Dienstag, 11. Februar 2020 09:24 > > An: Development list for mkgmap > > Betreff: Re: [mkgmap-dev] More method options for is_in function > > > > Hi Gerd > > > > Yes, overlapping polygons was the case I was thinking about. I'd > > say > > that is_in(.., 'on') should be true if ON the edge of one, > > regardless > > of being IN the other. > > > > Can you commit my last change and then, if you are not changing > > IsInUtil at the moment, I'd like to move some of the code around. > > I'll > > also start some documentation for the Style Manual. > > > > Ticker > > > > On Mon, 2020-02-10 at 18:48 +0000, Gerd Petermann wrote: > > > Hi Ticker, > > > > > > reg. POINT is_in(..., 'on') : You think about the case that a > > > point > > > is inside one polygon and on boundary of another? Should not > > > happen > > > with correct OSM data but the question is also what result you > > > want > > > to get. > > > reg. isComplete(): > > > This is about input data where not all coords are known and thus > > > the > > > geometry of the way is undefined. Should never happen with normal > > > input. > > > I am not sure but I think splitting at tile borders did not yet > > > happen with the polygons, only the preparation is done by adding > > > nodes at the tile border. > > > > > > Gerd > > > > > > ________________________________________ > > > Von: mkgmap-dev <mkgmap-dev-bounces at lists.mkgmap.org.uk> im > > > Auftrag > > > von Ticker Berkin <rwb-mkgmap at jagit.co.uk> > > > Gesendet: Montag, 10. Februar 2020 18:09 > > > An: Development list for mkgmap > > > Betreff: Re: [mkgmap-dev] More method options for is_in function > > > > > > Hi Gerd > > > > > > I've re-implemented the POINT test within IsInFunction, using the > > > stopping methods etc, which are now coded, but only relevant for > > > this > > > context at the moment. This implementation has other advantage in > > > that > > > the method can control the onBoundary condition. Also the logic > > > in > > > calcInsideness can give the wrong answer for POINT is_in(..., > > > 'on'). > > > > > > I didn't want to change IsInUtil while you are working on it and > > > I'm > > > not sure yet of the best way to handle the LINE/POLYGON versions. > > > > > > There are a couple of aspects of these that occur to me: > > > > > > It would be clearer to test for kind=POINT/LINE/POLYGON etc > > > rather > > > than > > > el instanceof. > > > > > > w.isComplete(): > > > - Will this will cause different answers depending on tile > > > splitting, > > > or is the complete polygon represented; even the bits outside the > > > tile? > > > - The ANY methods should be processed and will be correct. > > > > > > Thanks for spotting my error with tstMethod. > > > > > > This patch also improves the method error message; listing the > > > possible > > > methods for the context. > > > > > > Ticker > > > > > > On Mon, 2020-02-10 at 13:14 +0000, Gerd Petermann wrote: > > > > Hi all, > > > > > > > > see > > > > http://www.mkgmap.org.uk/websvn/revision.php?repname=mkgmap&rev > > > > =4 > > > > 44 > > > > 2 > > > > > > > > @Ticker: > > > > I assume you are working on an alternative implementation of > > > > the > > > > methods in IsInUtil? > > > > If not I'd like to remove all the code duplication introduced > > > > with > > > > the last patch. > > > > > > > > Gerd > > > > _______________________________________________ > > > > 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
- Previous message: [mkgmap-dev] More method options for is_in function
- Next message: [mkgmap-dev] More method options for is_in function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list