[geos-devel] GEOS robustness question

Martin Davis mbdavis at VividSolutions.com
Mon Jun 23 13:10:34 EDT 2003


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


> -----Original Message-----
> From: Kevin Wiebe [mailto:Kevin.Wiebe at safe.com]
> Sent: Friday, June 20, 2003 11:27 PM
> To: geos-devel at geos.refractions.net
> Subject: [geos-devel] GEOS robustness question
> 
> 
> Hi all,
> 
> <chit_chat>
> I have been following JTS development from the beginning, and 
> now also GEOS.
> 
> I have been primarily lurking, like many of us I presume, 
> cheering on Yuri and others yet contributing little.
> 
> My interest has mostly been around robustness issues.  This 
> is where I have plenty of experience.  I will be interested 
> to do more testing once buffer is completed.
> <\chit_chat>
> 
> A question I am hoping someone can quickly answer is if there 
> is an isolated method in the code that compares two polylines 
> (line strings with more than two points) to see if they cross 
> over each other.  (Not if they "touch", but if they fully cross over.)
> 
> If so, where is this method located?  I would like to see how 
> robust the algorithm, data structures, etc. is, especially 
> with respect to finite precision math.
> 
> If you'd like, I'll post my thoughts after I look through it.
> 
> Thanks,
> -Kevin-
> 
> p.s.  Here's my contribution today...
> The Visual Studio projects that are in CVS are a bit out of 
> date.  They need to include some of the newer exception 
> files.  Also, the projects should include the /GR (RTTI) 
> compiler option, as the code checks object types at runtime 
> in several places.  (AbstractSTRtree.cpp line 122, for 
> example.)  Without this option we will get "unpredictable behaviour".
> 
> -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