# Shape Document ## Purpose Basic shapes (points, lines, polygons) used for annotations, measurements, or simple overlays distinct from full Vector datasets. ## GeoJSON (DB metadata) ```json { "type": "Feature", "geometry": {"type": "LineString", "coordinates": [[30.1, 59.9], [30.2, 59.95]]}, "properties": { "type": "Shape", "title": "Measurement Line", "created_at": "2025-01-10T08:00:00Z", "updated_at": "2025-01-10T08:00:00Z", "source": { "url": "/s3/$FILE_PATH", "type": "GeoJSON" }, "style": {"stroke": "#00ccff", "stroke_width": 3} } } ``` ## Required properties - `properties.type` = `Shape` - Geometry is a simple shape (Point/LineString/Polygon) - Style suitable for annotation overlay ## Publishing workflow 1. Create the shape geometry and optional style. 2. If stored externally, upload GeoJSON and link via `properties.source.url`. 3. Publish Feature with type `Shape`. ## Validation checklist - Geometry is valid and renders clearly at target zoom levels. - Style contrasts the background. See [Common properties](../common.md) for shared fields like legend, metadata, and classification. ## TimeSeries variant (properties.kind = "TimeSeries") Some Shape documents carry time series data, indicated by `properties.kind = "TimeSeries"` and a `bands` block that provides per-band descriptors and links to the data JSON. Example: ```json { "type": "Feature", "geometry": {"type": "Polygon", "coordinates": [[[4.885619, 52.362736], [4.873003, 52.370607], [4.882328, 52.382996], [4.921341, 52.426765], [4.885619, 52.362736]]]}, "properties": { "type": "Shape", "kind": "TimeSeries", "roles": ["public_read"], "Bucket": "staging", "source": { "url": "/s3///", "type": "GeoJSON" }, "version": 2, "Endpoint": "http://rook-ceph-rgw-geo.rook-ceph.svc:80", "ResultKey": "test/orvi/test_orvi_timeseries_v3/time-series", "friendly_name": "test/ts", "bands": { "band_ids": ["amsterdam_centar", "amsterdam_field"], "band_meta": [ { "band": 1, "bbox": [4.873003, 52.362736, 4.907834, 52.382996], "data": { "url": "/s3///", "bounds": [4.873003, 52.362736, 4.907834, 52.382996], "data_kind": "rvi", "data_type": "gauge", "url_params": {"band": "amsterdam_centar"} }, "name": "amsterdam_centar", "color": "#7dff7a" } ] }, "classification": {"ocli": [7, 8], "metadata_preset": [17]} } } ``` See [Common properties](../common.md) for shared fields like legend, metadata, and classification. See also: [GeoJSON Strategy](../../Geojson_strategy.md) and [Upload Strategy](../../Upload_strategy.md).