[geos-devel] C# Bindings?

Simon Perkins sy at perkins.net
Tue Sep 11 18:31:56 EDT 2007

Thanks for the thoughts. A quick look at the NTS sourceforge page seems 
to suggest that it hasn't really been worked on in about a year, but 
maybe it includes the things I need... Anybody know how it compares 
performance wise with GEOS?

Another option would be to add the isValid() member to the OGR bindings 
- I might try that and see whether the OGR people want it in there. Of 
course the question then is what do I actually do if the geometry turns 
out to be "invalid" when I know that the methods I used to create it 
should have produced a correct geometry...

BTW, does anyone know what a "side location conflict" actually is? I 
looked at the code but it wasn't obvious to me...



Martin Davis wrote:
> A couple of things:
> You might also try looking at the Net Topology Suite, which is a port 
> of JTS to C# (just like GEOS is a port to C++).  HOWEVER, this is a 
> fork of JTS, and I don't know how current or active it is.  (It might 
> be nice thing for JTS to offer an official .NET compatible version....)
> You can also try compiling JTS under J#.  It mostly all works - there 
> might be a few simple utility classes you have to supply.
> As for your topology problems, this might be cause by invalid input 
> data, or it might be caused by robustness errors in the computation 
> itself.  The most recent version of GEOS has some substantial 
> improvements in robustness for overlay ops, so you should try it and 
> see if it fixes your problem.  (At a very high level this is doing 
> something similar to your concept of "cleaning up" the geometries to 
> avoid the problems - but it's probably not something you want to try 
> at home  8^)
> Another note - if you are unioning many polygons together, JTS is just 
> adding an optimized function to do this efficiently, and hopefully 
> this will make it in GEOS in due course.
> Simon Perkins wrote:
>> Hi,
>> Are there any C# bindings for GEOS out there?
>> We've been using the OGR interface to GEOS (which are exposed by the 
>> OGR C# bindings), but are running into some strange topology 
>> exceptions (side location conflicts and non-nodal intersections) and 
>> I'd like to use the GEOS isValid() method which is not exposed by 
>> OGR, AFAIK. Might using the GEOS library directly be more efficient 
>> than going through OGR as well?
>> In general, is there an easy way to "clean up" a geometry so it won't 
>> raise these kinds of exceptions? The geometries in question are all 
>> generated by the union of (many) simple polygons.
>> Anyway, I could go off and roll PInvoke stubs for the GEOS functions 
>> I need in not much time, but I figured I'd see what other people have 
>> already before I do that. Any interest in adding such bindings to 
>> geos? I could also take a look at SWIG, but it always scares me for 
>> some reason...
>> Cheers,
>> Sy
>> _______________________________________________
>> 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