Skip to main content

Why the aggregated feature is "OGC Simple Compliant"?

First CREATOR generates a box POLYGON(0 0 10 0 10 10 8 10 0 10 0 0) and the second one a triangle (POLYGON(0 10 5 13 8 10 0 10)). I think I missunderstood the meaning of "OGC Simple". (the opposite of a complex feature?). It seems that "simple" doesn´t imply "valid".

Workspace:

Thanks in advance.

we could definitely add some clarity to the FME user documentation on the GeometryValidator - which simply refers to the OGC simple feature specification: http://www.opengeospatial.org/standards/sfa

FME uses geos (based on the Java Topology Suite) and this has the operators:
isSimple: http://www.tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html
isValid: http://www.tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html

_____________________________________________________________

 

isSimple Checks for OGC simple (taken from geosdll_api_geom.h::isSimpleWithInfo):

 

if multipoint, check for repeated points

 

if anything else, check for self-intersection

 

_____________________________________________________________

 

isValid Checks for OGC valid (taken from isValidOp.cpp::checkValid):

 

if point, check for Invalid Coords

 

if lineString, check for Invalid Coords, too-few-points,

 

if linearRing, check for Invalid Coords, closed rings, too-few-points, self-intersecting rings

 

if polygon, check for Invalid Coords, closed rings, too-few-points, consistent areas (intersecting or duplicate rings), self-intersecting rings, holes in shell, nested holes, connected interior

 

if multiPolygon, similar to polygons, but also checks if polygons intersect each other

 

if GeometryCollection, break apart, the check based on geometry type

we could definitely add some clarity to the FME user documentation on the GeometryValidator - which simply refers to the OGC simple feature specification: http://www.opengeospatial.org/standards/sfa

FME uses geos (based on the Java Topology Suite) and this has the operators:
isSimple: http://www.tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/operation/IsSimpleOp.html
isValid: http://www.tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/operation/valid/IsValidOp.html

_____________________________________________________________

 

isSimple Checks for OGC simple (taken from geosdll_api_geom.h::isSimpleWithInfo):

 

if multipoint, check for repeated points

 

if anything else, check for self-intersection

 

_____________________________________________________________

 

isValid Checks for OGC valid (taken from isValidOp.cpp::checkValid):

 

if point, check for Invalid Coords

 

if lineString, check for Invalid Coords, too-few-points,

 

if linearRing, check for Invalid Coords, closed rings, too-few-points, self-intersecting rings

 

if polygon, check for Invalid Coords, closed rings, too-few-points, consistent areas (intersecting or duplicate rings), self-intersecting rings, holes in shell, nested holes, connected interior

 

if multiPolygon, similar to polygons, but also checks if polygons intersect each other

 

if GeometryCollection, break apart, the check based on geometry type
Perfectly explained. Thank you very much.

 

 


Reply