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

Attachment: EsriToSfsOp.java
Description: EsriToSfsOp.java

_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel

Reply via email to