[geos-devel] GEOS robustness question

Martin Davis mbdavis at VividSolutions.com
Mon Jun 23 19:09:34 EDT 2003


Kevin,  I'm afraid I don't have the time right now to provide a detailed explanation.  If you start browsing the relate classes you'll find the code you're looking for.  Best to look at JTS, I think - the algorithms are the same and the syntax is clearer.  Get an IDE which helps you drill down through the code.

Martin Davis, Senior Technical Architect
Vivid Solutions Inc.
Suite #1A-2328 Government Street   Victoria, B.C.   V8T 5G5
Phone: (250) 385 6040    Fax: (250) 385 6046
EMail: mbdavis at vividsolutions.com  Web: www.vividsolutions.com


> -----Original Message-----
> From: Kevin Wiebe [mailto:Kevin.Wiebe at safe.com]
> Sent: Monday, June 23, 2003 4:09 PM
> To: geos-devel at geos.refractions.net
> Subject: [geos-devel] GEOS robustness question
> 
> 
> > Paul is right, in that the crosses() predicate reports 
> > whether two lines strings properly cross or not.
> > 
> > In fact, all the named predicates are implemented in terms 
> > of the basic relate() method, which evaluates them all in 
> > the same way.  You will find that the implementation is 
> > fully robust, by virtue of using a robust line segment 
> > intersection test and carefully coding to evaluate all 
> > possible ways geometrys can interact.  This is documented 
> > in the JTS materials.
> > 
> > Martin Davis, Senior Technical Architect
> > Vivid Solutions Inc.
> > Suite #1A-2328 Government Street   Victoria, B.C.   V8T 5G5
> > Phone: (250) 385 6040    Fax: (250) 385 6046
> > EMail: mbdavis at vividsolutions.com  Web: www.vividsolutions.com
>  
> 
> Martin, your answer has taught me to ask a more intelligent question.
> 
> It appears obvious that the upper level calls on Geometry 
> objects do not have a direct correspondence to underlying 
> "core" algorithms.  I guess what I am looking for is some 
> part of the core code, probably in the "algorithm" directory, 
> where the lowest level computations are being done.
> 
> I may have to study many complex structures to understand how 
> things are done, but I'm prepared.  I hope.
> 
> I think the previous "lines crossing" question was a bit too 
> vague.  I'm not trying to hunt down a single algorithm; I am 
> just looking for the core algorithms that do this "type" of thing.
> 
> Instead, maybe I can ask for the sections of code that would 
> distinguish between a line that "meets" a polygon (stays 
> outside, but touches the border) and a line that "cuts 
> through" a polygon (part of the line inside, and part 
> outside).  For argument's sake, let's say all the vertices on 
> the line are outside the polygon.
> 
> Pointers to a file, a method, a line of code :), or a general 
> walk through how this decision is done, internally, would be helpful.
> 
> -Kevin-
> 
> ----------------------------------------------------------------
>  Kevin Wiebe     Safe Software Inc.       email:kevinAtsafe.com
>       Senior     Surrey, BC, CANADA       phone: (604) 501-9985
>    Developer     http://www.safe.com        fax: (604) 501-9965
> ----------------------------------------------------------------
> 
> 
> 
> _______________________________________________
> geos-devel mailing list
> geos-devel at geos.refractions.net
> http://geos.refractions.net/mailman/listinfo/geos-devel
> 



More information about the geos-devel mailing list