Hi there, If anyone is in need of it:
Attached you will find a SpatialOp-like class, that converts ESRI-holes to SFS-holes. Please do whatever with it as you like. Currently it is in Java 5 coding style. /Aron. ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Alvaro Zabala Sent: 12 February 2009 14:04 To: JTS Topology Suite Development Subject: Re: [jts-devel] PolygonRectifier? The problem is that OpenJUMP uses JTS as geometry model, and JTS is a restrictive geometry model, based in SFS OGC specification. This specification says "polygons shells must not have self-intersections", so when JTS finds this kind of geometry launchs an exception (TopologyException). Other projects, like gvSIG, Geotools, etc. use a less restrictive geometry model: Java2D, for rendering geometries. So when the persistence driver reads a self-intersecting polygon shell, it doesnt create a JTS polygon, it creates a Java2D GeneralPath, geometry model which allows self-intersecting polygons. In my opinion, one of the points where JTS could improve in this subject is not to "short-cuit" validation in isValid() geometry method. This method, when find an error, launchs an exception, so you need many iterations to correct a geometry at all. I have developed a Quality Assurance library for gvSIG project: libTopology [1], to ensure topological correctness with a rule based model. Im planning to port this library to GeoAPI (in medium term, not before the final of 2009 for overworking :( ), to allow geometry validations. I have desglosed all isValid validations in multiple steps [2]. This, of course, is only a proof of concepts. [1] libTopology. http://subversion.gvsig.org/gvSIG/trunk/libraries/libTopology/ [2] Decompsing isValid(). http://subversion.gvsig.org/gvSIG/trunk/libraries/libTopology/src/org/gvsig/topology/topologyrules/JtsValidRule.java 2009/2/12 Tuure Laurinolli <[email protected]<mailto:[email protected]>> Sunburned Surveyor wrote: Tuure, You wrote: "...OpenJUMP doesn't deal with some oddly broken geometries..." What are you trying to do with these geometries and how are they broken? With OpenJUMP I was trying to see if the invalid geometries were important enough to be salvaged, or if I could just drop them. This was part of preprocessing to get a Shape reader to accept them for conversion into a proprietary format. The converter read even the invalid geometries in fine, but at later stages of conversion there were problems - thus I had to find and either drop or fix invalid geometries in the early stages of conversion. Usually the problematic geometries had self-intersections and duplicate points, but some were stranger and had e.g. those inverted rings I mentioned before. _______________________________________________ jts-devel mailing list [email protected]<mailto:[email protected]> http://lists.refractions.net/mailman/listinfo/jts-devel -- Alvaro Zabala Ordóñez azabala[en]gmail[punto]com alvaro.zabala[en]juntadeandalucia[punto]es Tlf: 954 995 572 Gabinete de Normalización y Calidad Servicio de Coordinación y Desarrollo de Sistemas Horizontales. D.G. de Innovación y Administraciones Públicas. Consejería de Innovación, Ciencia y Empresa, Junta de Andalucía
EsriToSfsOp.java
Description: EsriToSfsOp.java
_______________________________________________ jts-devel mailing list [email protected] http://lists.refractions.net/mailman/listinfo/jts-devel
