Skip to content
37 changes: 31 additions & 6 deletions standard/clause_specification_text.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1624,15 +1624,15 @@ Coverage example:
//### 11.9. Polygon
==== Polygon

Polygons in this domain domain type are defined equally to GeoJSON, except that they can only contain `[x,y]` positions (and not `z` or additional coordinates):
Polygons in this domain domain type are defined equivalent to GeoJSON, except that they can only contain `[x,y]` positions (and not `z` or additional coordinates):
- A LinearRing is an array of 4 or more `[x,y]` arrays where each of `x` and `y` is a coordinate value. The first and last `[x,y]` elements are identical.
- A Polygon is an array of LinearRing arrays. For Polygons with multiple rings, the first MUST be the exterior ring and any others MUST be interior rings or holes.

- A domain with Polygon domain type MUST have the axis `"composite"` which has a single Polygon value.
- The axis `"composite"` MUST have the data type `"polygon"` and the coordinate identifiers `"x","y"`, in that order.
- A Polygon domain MAY have the axes `"z"` and `"t"` which both MUST have a single coordinate value only.

Domain example:
Domain example of a simple Polygon:

[%unnumbered%]
```json
Expand All @@ -1654,6 +1654,30 @@ Domain example:
}
```

Domain example of a Polygon with two holes, one square, the other triangular:

[%unnumbered%]
```json
{
"type": "Domain",
"domainType": "Polygon",
"axes": {
"composite": {
"dataType": "polygon",
"coordinates": ["x","y"],
"values": [
[ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]
[ [100.3, 0.2], [100.3, 0.4], [100.5, 0.4], [100.5, 0.2], [100.3, 0.2] ]
[ [100.7, 0.6], [100.8, 0.8], [100.9, 0.6], [100.7, 0.6] ] ]
]
},
"z": { "values": [2] },
"t": { "values": ["2008-01-01T04:00:00Z"] }
},
"referencing": [...]
}
```

Coverage example:

[%unnumbered%]
Expand Down Expand Up @@ -1713,7 +1737,7 @@ Domain example:
]
},
"z": { "values": [2] },
"t": { "values": ["2008-01-01T04:00:00Z","2008-01-01T05:00:00Z"] }
"t": { "values": ["2008-01-01T04:00:00Z","2008-01-01T05:00:00Z","2008-01-01T06:00:00Z] }
},
"referencing": [...]
}
Expand All @@ -1737,7 +1761,7 @@ Coverage example:
]
},
"z": { "values": [2] },
"t": { "values": ["2008-01-01T04:00:00Z","2008-01-01T05:00:00Z"] }
"t": { "values": ["2008-01-01T04:00:00Z","2008-01-01T05:00:00Z","2008-01-01T05:00:00Z] }
},
"referencing": [...]
},
Expand All @@ -1749,7 +1773,7 @@ Coverage example:
"type" : "NdArray",
"dataType": "float",
"axisNames": ["t"],
"shape": [2],
"shape": [3],
"values" : [...]
}
}
Expand All @@ -1763,6 +1787,7 @@ Coverage example:
- A domain with MultiPolygon domain type MUST have the axis `"composite"` where the values are Polygons. Polygons are defined in the Polygon domain type.
- The axis `"composite"` MUST have the data type `"polygon"` and the coordinate identifiers `"x","y"`, in that order.
- A MultiPolygon domain MAY have the axes `"z"` and `"t"` which both MUST have a single coordinate value only.
- A MultiPolygon is intended to represent several polygons, possibly with holes, that define non-contiguous regions of one underlying coverage range. It is not intended to represent several polygons that are separate coverages, each with their own separate ranges. The latter case is a collection of coverages.

Domain example:

Expand Down Expand Up @@ -1850,7 +1875,7 @@ Domain example:
]
},
"z": { "values": [2] },
"t": { "values": ["2008-01-01T04:00:00Z", "2010-01-01T00:00:00Z"] }
"t": { "values": ["2008-01-01T00:00:00Z", "2010-01-01T00:00:00Z", "2012-01-01T00:00:00Z"] }
},
"referencing": [...]
}
Expand Down
Loading