On Wed, May 30, 2012 at 12:40:19PM +0200, Jasmin FORMONT wrote: > Hi everyone > > I can't find a way to tell if two linestrings "really" cross each other. > > For instance if I have this linestring : > Line1 : LINESTRING(0 0, 1 1, 2 0) > > How can I differentiate the relation of line 1 with one of the following : > Line2 : LINESTRING(0 2, 1 1, 2 2) -> no "real" cross, just a contact point > Line3 : LINESTRING(0 2, 1 1, 1 0) -> lines "really" cross each other > > I can't find a good combination of crosses, touches, etc... to differentiate > these cases.
I can't think of an easy way to do that. I'd note that for the "split" case there's no way to walk on all segments of your first geometry w/out stepping over segments of the second. You can in the "no real cross" case. You could then look at the planargraph. Not available trough the C API. Hard trough the C++ one. I guess you could do it with a nice SQL query with PostGIS 2.0 topology ;) --strk; _______________________________________________ geos-devel mailing list geos-devel@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/geos-devel