This is likely due to lines in the input which are almost, but not quite coincident. This would be caused by two polygons which have similar, but not identical, line(s) along a portion of their boundaries. These might be in a single layer, or they might be in different input layers.

Unfortunately in general these are not easy to recover from. One thing you can try is to reduce the precision of your input geometries. I think the ultimate technical solution to this is to snap-round the datasets individually and together. Unfortunately I don't have code or an API for doing this at this point.

The coordinates in the error message are not useful - they are in a translated coordinate system used internally.

I'd be interested to see the input dataset, if you can provide it.

Martin

Stefan Steiniger wrote:
Hei Martin and others,

I get the exception below while intersecting two layers of polygons (in OpenJUMP >Tools>two Layers>intersect polygon layers).
Is there a way to proceed despite the exception?
Could it be that the problem is within one layer of polygons? i.e. overlapping polygons in one layer?

The coordinates are also not useful [1] - not sure what coordinate system they are in???

stefan

[1] bbox(677104.8683854531,228446.29622920923,687118.4247461993,237423.31161814026)


com.vividsolutions.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 5453.300000000047 32281.0, 5454.177554877591 32280.11017162766 ) and LINESTRING ( 5454.177554877578 32280.110171627675, 5452.379085899257 32281.844875321825 ) [ (5454.177554877563, 32280.11017162769, NaN) ] at com.vividsolutions.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:109) at com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:94) at com.vividsolutions.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:59) at com.vividsolutions.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:170) at com.vividsolutions.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:127) at com.vividsolutions.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:66) at com.vividsolutions.jts.operation.overlay.snap.SnapOverlayOp.getResultGeometry(SnapOverlayOp.java:67) at com.vividsolutions.jts.operation.overlay.snap.SnapOverlayOp.overlayOp(SnapOverlayOp.java:24) at com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:76) at com.vividsolutions.jts.operation.overlay.snap.SnapIfNeededOverlayOp.overlayOp(SnapIfNeededOverlayOp.java:25)
    at com.vividsolutions.jts.geom.Geometry.union(Geometry.java:1173)
at org.openjump.core.geomutils.algorithm.IntersectGeometries.nodeLines(IntersectGeometries.java:471) at org.openjump.core.ui.plugin.tools.IntersectPolygonLayersPlugIn.runIntersectionNew(IntersectPolygonLayersPlugIn.java:179) at org.openjump.core.ui.plugin.tools.IntersectPolygonLayersPlugIn.run(IntersectPolygonLayersPlugIn.java:112) at com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager$TaskWrapper.run(TaskMonitorManager.java:149)
    at java.lang.Thread.run(Thread.java:619)
_______________________________________________
jts-devel mailing list
[email protected]
http://lists.refractions.net/mailman/listinfo/jts-devel


--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022

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

Reply via email to