Skip to main content
Solved

GeometryValidator "OGC Simple Compliant" meaning?


jorge_rosales
Contributor
Forum|alt.badge.img+8

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.

Best answer by markatsafe

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
View original
Did this help you find an answer to your question?

2 replies

Forum|alt.badge.img+2
  • Best Answer
  • October 9, 2018

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

jorge_rosales
Contributor
Forum|alt.badge.img+8
  • Author
  • Contributor
  • October 10, 2018
markatsafe wrote:

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


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings