I suspect this is a data QA problem (i.e. the line string is not valid). Can 
you edit the data?

You could ask on the JTS list for tips on how to fix, I tend to fix things with 
buffer(0) which sounds like it may not work in your case.

-- 
Jody Garnett


On Thursday, 14 March 2013 at 5:35 AM, GATE User wrote:

> I'm getting a "found non-noded intersection between LINESTRING ..." error 
> whenever I call union() on a piece of geometry.  How do I fix this?  Here is 
> the error:
> 
> Caused by: com.vividsolutions.jts.geom.TopologyException: found non-noded 
> intersection between LINESTRING ( 362288.81188113254 3579973.0203621145, 
> 362278.74453274783 3579973.157844542 ) and LINESTRING ( 362282.6573267882 
> 3579963.126863458, 362278.7445327479 3579973.157844542 ) [ 
> (362278.7445327479, 3579973.157844542, 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.union.UnaryUnionOp.unionNoOpt(UnaryUnionOp.java:221)
>     at 
> com.vividsolutions.jts.operation.union.UnaryUnionOp.union(UnaryUnionOp.java:159)
>     at 
> com.vividsolutions.jts.operation.union.UnaryUnionOp.union(UnaryUnionOp.java:88)
>     at com.vividsolutions.jts.geom.Geometry.union(Geometry.java:1241)
>     at 
> mil.jtcoic.tb.epik.bender.server.bootstrap.BootstrapDataPopulator.insertShapes(BootstrapDataPopulator.java:355)
>     at 
> mil.jtcoic.tb.epik.bender.server.bootstrap.BootstrapDataPopulator.init(BootstrapDataPopulator.java:65)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:601)
>     at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
>     at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
>     at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
>     ... 26 more
> 
> The piece of code where the error is being thrown is:
> 
>     Collection<Geometry> bliss = new ArrayList<Geometry>();
> 
>             for (FeatureReader<SimpleFeatureType, SimpleFeature> reader = 
> store
>                     .getFeatureReader(); reader.hasNext();) {
>                 SimpleFeature feature = reader.next();
>                 bliss.add((Geometry) feature.getDefaultGeometry());
>             }
> 
>             System.out.println("done with bliss");
>             com.vividsolutions.jts.geom.GeometryFactory factory = 
> JTSFactoryFinder
>                     .getGeometryFactory(null);
>             ShapeTemplate blissroadshape = new ShapeTemplate();
>             blissroadshape.setName("Bliss Roads");
>             blissroadshape.setDescription("Bliss Roads");
>             blissroadshape.setShapeType("CTC");
>             GeometryCollection blissCollection = (GeometryCollection) factory
>                     .buildGeometry(bliss);
>             System.out.println("one");
>             Geometry obj = blissCollection.union();
> 
> Thanks in advance for your help.
> ------------------------------------------------------------------------------
> Everyone hates slow websites. So do we.
> Make your web apps faster with AppDynamics
> Download AppDynamics Lite for free today:
> http://p.sf.net/sfu/appdyn_d2d_mar
> 
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net 
> (mailto:GeoTools-GT2-Users@lists.sourceforge.net)
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to