From: Michaël Michaud <michael.michaud@fr...>  20121027 14:10:07

Hi, In your blog about isSimple semantic, you wrote : "The code will also be extended to handle GeometryCollections, with the semantics that they are simple if all their components are simple". Seems to me that for MultiLineStrings, it is not completely consistent with  isValid semantic (a simple LinearRing is always the boundary of a valid Polygon, but a simple MultiLineString is not the boundary of a valid MultiPolygon if components have interior intersections)  the way boundaries are defined (if two linestrings of a MultiLineString intersect at their boundary, the intersetion is not part of the MultiLineString boundary)  the isSimple definition for linestring (interior intersections are not authorized) I do not pretend to demonstrate anything but have the feeling that a simple MultiLineString should be a PlanarGraph as for simple LineString. Also it sounds strange to me that a simple linear geometry is a valid geometry verifying some more conditions and that an invalid MultiPolygon can be considered as simple (if it contains simple, overlapping polygons) My 2 cents, Michaël 
From: Martin Davis <mtnclimb@gm...>  20121027 15:55:18

Michael, By "GeometryCollection" I meant the concrete class  i.e. heterogeneous geometry collections. For MultiLineStrings isSimple works the way you describe. For MultiPolygons the situation is a bit more complicated. isSimple checks for the rings of the polygons being simple. It doesn't check for noncrossing polygons, because that's pretty much the definition of isValid, and the general approach in JTS is to NOT check for validity in operations, to avoid the performance penalty in situations where the user knows the geometry is valid. (E,g, the predicates and overlay operations work this way as well). Hope this clears things up  and always good to have input on the sometimes tricky semantics of operations. Martin I agree with On Sat, Oct 27, 2012 at 7:09 AM, Michaël Michaud <michael.michaud@...> wrote: > Hi, > > In your blog about isSimple semantic, you wrote : > "The code will also be extended to handle GeometryCollections, with the > semantics that they are simple if all their components are simple". > > Seems to me that for MultiLineStrings, it is not completely consistent with >  isValid semantic (a simple LinearRing is always the boundary of a > valid Polygon, but a simple MultiLineString is not the boundary of a > valid MultiPolygon if components have interior intersections) >  the way boundaries are defined (if two linestrings of a > MultiLineString intersect at their boundary, the intersetion is not part > of the MultiLineString boundary) >  the isSimple definition for linestring (interior intersections are not > authorized) > > I do not pretend to demonstrate anything but have the feeling that > a simple MultiLineString should be a PlanarGraph as for simple LineString. > > Also it sounds strange to me that a simple linear geometry is a valid > geometry verifying some more conditions > and that an invalid MultiPolygon can be considered as simple (if it > contains simple, overlapping polygons) > > My 2 cents, > > Michaël > > >  > WINDOWS 8 is here. > Millions of people. Your app in 30 days. > Visit The Windows 8 Center at Sourceforge for all your go to resources. > http://windows8center.sourceforge.net/ > joingenerationappandmakemoneycodingfast/ > _______________________________________________ > Jtstoposuiteuser mailing list > Jtstoposuiteuser@... > https://lists.sourceforge.net/lists/listinfo/jtstoposuiteuser 
From: Michaël Michaud <michael.michaud@fr...>  20121027 19:23:52

OK, thanks a lot. I have been misled by the great Validation Plugin in OpenJUMP which has stayed unchanged since 2004 and which check each LineString component independently. I'll upgrade that, Michaël > Michael, > > By "GeometryCollection" I meant the concrete class  i.e. > heterogeneous geometry collections. > > For MultiLineStrings isSimple works the way you describe. > > For MultiPolygons the situation is a bit more complicated. isSimple > checks for the rings of the polygons being simple. It doesn't check > for noncrossing polygons, because that's pretty much the definition > of isValid, and the general approach in JTS is to NOT check for > validity in operations, to avoid the performance penalty in situations > where the user knows the geometry is valid. (E,g, the predicates and > overlay operations work this way as well). > > Hope this clears things up  and always good to have input on the > sometimes tricky semantics of operations. > > Martin > > I agree with > > On Sat, Oct 27, 2012 at 7:09 AM, Michaël Michaud > <michael.michaud@...> wrote: >> Hi, >> >> In your blog about isSimple semantic, you wrote : >> "The code will also be extended to handle GeometryCollections, with the >> semantics that they are simple if all their components are simple". >> >> Seems to me that for MultiLineStrings, it is not completely consistent with >>  isValid semantic (a simple LinearRing is always the boundary of a >> valid Polygon, but a simple MultiLineString is not the boundary of a >> valid MultiPolygon if components have interior intersections) >>  the way boundaries are defined (if two linestrings of a >> MultiLineString intersect at their boundary, the intersetion is not part >> of the MultiLineString boundary) >>  the isSimple definition for linestring (interior intersections are not >> authorized) >> >> I do not pretend to demonstrate anything but have the feeling that >> a simple MultiLineString should be a PlanarGraph as for simple LineString. >> >> Also it sounds strange to me that a simple linear geometry is a valid >> geometry verifying some more conditions >> and that an invalid MultiPolygon can be considered as simple (if it >> contains simple, overlapping polygons) >> >> My 2 cents, >> >> Michaël >> >> >>  >> WINDOWS 8 is here. >> Millions of people. Your app in 30 days. >> Visit The Windows 8 Center at Sourceforge for all your go to resources. >> http://windows8center.sourceforge.net/ >> joingenerationappandmakemoneycodingfast/ >> _______________________________________________ >> Jtstoposuiteuser mailing list >> Jtstoposuiteuser@... >> https://lists.sourceforge.net/lists/listinfo/jtstoposuiteuser > 