Solved

GeometryValidator "OGC Simple Compliant" meaning?

  • 5 October 2018
  • 2 replies
  • 89 views

Badge

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.

icon

Best answer by markatsafe 9 October 2018, 20:09

View original

2 replies

Badge +2

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
Badge

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