Checking for OGC compliance with the GeometryValidator transformer
The GeometryValidator transformer can be used to check for features that fail to comply with the OGC geometry specifications. There can be several reasons why a feature may fail this geometry check. Some examples are provided below:
Hole Outside Shell
WKT Example: POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (15 15, 15 20, 20 20, 20 15, 15 15))
Nested Holes
WKT Example: POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (2 2, 2 8, 8 8, 8 2, 2 2), (3 3, 3 7, 7 7, 7 3, 3 3))
Disconnected Interior
WKT Example: POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (5 0, 10 5, 5 10, 0 5, 5 0))
Self Intersection
WKT Example: POLYGON((0 0, 10 10, 0 10, 10 0, 0 0))
Ring Self Intersection
WKT Example: POLYGON((5 0, 10 0, 10 10, 0 10, 0 0, 5 0, 3 3, 5 6, 7 3, 5 0))
Nested Shells
WKT Example: MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),(( 2 2, 8 2, 8 8, 2 8, 2 2)))
Duplicated Rings
WKT Example: MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),((0 0, 10 0, 10 10, 0 10, 0 0)))
Too Few Points
WKT Example: POLYGON((2 2, 8 2))
Invalid Coordinate
WKT Example: POLYGON((NaN 3, 3 4, 4 4, 4 3, 3 3))
Ring Not Closed
WKT Example: POLYGON((0 0, 0 10, 10 10, 10 0))