├── .github └── workflows │ ├── build-openapi-bundle.yml │ └── test-build-openapi-bundle.yml ├── .gitignore ├── LICENSE ├── QuickGuide ├── Maps.md └── README.md ├── README.md ├── asciidoctor.json ├── core ├── CONTRIBUTORS.md ├── DEVELOPMENT.md ├── README.md ├── index.adoc ├── schemas │ └── metadata │ │ ├── crs.json │ │ └── mapMetadata.json └── standard │ ├── .gitignore │ ├── 20-058.adoc │ ├── README.md │ ├── annex_ats.adoc │ ├── annex_bgcolor.adoc │ ├── annex_bibliography.adoc │ ├── annex_examples.adoc │ ├── annex_history.adoc │ ├── annex_ogc_wms.adoc │ ├── clause_0_front_material.adoc │ ├── clause_10_map_paramCollectionsSelection.adoc │ ├── clause_11_map_paramScaling.adoc │ ├── clause_12_map_param_mmPerPixel.adoc │ ├── clause_13_map_paramSpatialSubsetting.adoc │ ├── clause_14_map_paramDateTime.adoc │ ├── clause_15_map_paramGeneralSubsetting.adoc │ ├── clause_16_map_paramCRS.adoc │ ├── clause_17_map_orientation.adoc │ ├── clause_18_map_projection.adoc │ ├── clause_19_map_originCollection.adoc │ ├── clause_1_scope.adoc │ ├── clause_20_map_originDataset.adoc │ ├── clause_21_map_originStyle.adoc │ ├── clause_22_map_dataEncodings.adoc │ ├── clause_23_map_apiOperations.adoc │ ├── clause_24_map_CORS.adoc │ ├── clause_2_conformance.adoc │ ├── clause_3_references.adoc │ ├── clause_4_terms_and_definitions.adoc │ ├── clause_5_conventions.adoc │ ├── clause_6_overview.adoc │ ├── clause_7_map_core.adoc │ ├── clause_8_map_tilesets.adoc │ ├── clause_9_map_paramBackground.adoc │ ├── collections-selection │ ├── REQ_query-collections.adoc │ └── REQ_resources-query.adoc │ ├── images │ ├── O2_dome.jpg │ ├── barcelona.png │ ├── landsatMiraMon.jpeg │ ├── nowcast.png │ ├── relMapTiles.png │ ├── sedan and nowcast.txt │ ├── sedan.png │ ├── sedan_and_nowcast.png │ ├── sentinel2.png │ ├── world_HR.png │ ├── world_HR_975.png │ ├── world_T.png │ ├── world_T_850.png │ ├── xmp_blueMarble_3395.jpg │ ├── xmp_blueMarble_4326.jpg │ ├── xmp_hrdem_style1.png │ ├── xmp_hrdem_style2.png │ ├── xmp_map_bbox.png │ ├── xmp_map_bbox_crs_1024x1024.png │ ├── xmp_map_center.png │ ├── xmp_map_center_crs.png │ ├── xmp_map_center_h_512x512.png │ ├── xmp_map_center_scale_1024x1024.png │ ├── xmp_map_center_scale_12000.png │ ├── xmp_map_center_scale_20000.png │ ├── xmp_map_center_scale_30000.png │ ├── xmp_map_center_scale_50000.png │ ├── xmp_map_center_scale_8000.png │ ├── xmp_map_center_scale_h_512x512.png │ ├── xmp_map_center_scale_hw_1024x512.png │ ├── xmp_map_center_scale_hw_512x1024.png │ ├── xmp_map_no_param.png │ ├── xmp_s2l2a_center_scale.png │ ├── xmp_s2l2a_evi.png │ └── xmp_s2l2a_scl.png │ ├── recommendations │ ├── background │ │ ├── PER_bgcolor-alpha.adoc │ │ └── REC_bgcolor-definition.adoc │ ├── collection-map │ │ ├── PER_desc-links.adoc │ │ ├── REC_api-common.adoc │ │ └── REC_storage-epoch.adoc │ ├── collections-selection │ │ ├── PER_collections-selection.adoc │ │ └── REC_maxcollections.adoc │ ├── core │ │ ├── REC_content-attribution.adoc │ │ ├── REC_content-crs.adoc │ │ ├── REC_legend-thumbnail-style.adoc │ │ ├── REC_map-op.adoc │ │ └── REC_multiple-media-types.adoc │ ├── crs │ │ └── PER_crs-crs-curie.adoc │ ├── dataset-map │ │ ├── PER_desc-links.adoc │ │ ├── PER_geodata-selection.adoc │ │ ├── REC_geodata-selection.adoc │ │ └── REC_storage-epoch.adoc │ ├── datetime │ │ ├── PER_datetime-axis.adoc │ │ └── REC_actual-datetime.adoc │ ├── format_html │ │ └── REC_content.adoc │ ├── format_svg │ │ └── PER_overflow.adoc │ ├── format_tiff │ │ └── REC_geotiff.adoc │ ├── scaling │ │ ├── REC_dimensions.adoc │ │ ├── REC_map-success-scale.adoc │ │ ├── REC_max-width-height.adoc │ │ ├── REC_scale-denominator.adoc │ │ └── REC_symbology.adoc │ └── spatial-subsetting │ │ ├── PER_map-outside-bounds.adoc │ │ ├── PER_subset-crs-curie.adoc │ │ ├── REC_map-outside-bounds.adoc │ │ └── REC_subset-crs-axis-names.adoc │ ├── requirements │ ├── README.md │ ├── README0.md │ ├── api-operations │ │ ├── REQ_completeness.adoc │ │ └── REQ_operation-id.adoc │ ├── background │ │ ├── REQ_bgcolor-definition.adoc │ │ ├── REQ_map-success.adoc │ │ ├── REQ_transparent-definition.adoc │ │ ├── REQ_void-color-definition.adoc │ │ └── REQ_void-transparent-definition.adoc │ ├── collection-map │ │ ├── REQ_desc-crs.adoc │ │ ├── REQ_desc-links.adoc │ │ └── REQ_operation.adoc │ ├── collections-selection │ │ ├── REQ_collections-parameter.adoc │ │ └── REQ_collections-response.adoc │ ├── core │ │ ├── REQ_conformance-success.adoc │ │ ├── REQ_map-op.adoc │ │ └── REQ_map-response.adoc │ ├── cors │ │ └── REQ_cors.adoc │ ├── crs │ │ ├── REQ_crs-definition.adoc │ │ └── REQ_map-success.adoc │ ├── dataset-map │ │ ├── REQ_desc-crs.adoc │ │ ├── REQ_desc-extent.adoc │ │ ├── REQ_landingpage.adoc │ │ └── REQ_operation.adoc │ ├── datetime │ │ ├── REQ_datetime-axis.adoc │ │ ├── REQ_datetime-definition.adoc │ │ ├── REQ_datetime-response.adoc │ │ ├── REQ_map-success.adoc │ │ ├── REQ_subset-definition.adoc │ │ └── REQ_subset-response.adoc │ ├── display-resolution │ │ ├── REQ_map-success.adoc │ │ └── REQ_mm-per-pixel-definition.adoc │ ├── format_html │ │ └── REQ_content.adoc │ ├── format_jpeg │ │ └── REQ_content.adoc │ ├── format_jpegxl │ │ └── REQ_content.adoc │ ├── format_png │ │ └── REQ_content.adoc │ ├── format_svg │ │ └── REQ_content.adoc │ ├── format_tiff │ │ └── REQ_content.adoc │ ├── general-subsetting │ │ ├── REQ_subset-definition.adoc │ │ └── REQ_uniform-additional-dimensions.adoc │ ├── metadata │ │ └── REC_smc-default-style.adoc │ ├── orientation │ │ ├── REQ_orientation.adoc │ │ └── REQ_response-headers.adoc │ ├── projection │ │ ├── REQ_crs-datum.adoc │ │ ├── REQ_crs-proj-center-definition.adoc │ │ ├── REQ_crs-proj-method.adoc │ │ ├── REQ_crs-proj-params.adoc │ │ ├── REQ_projections-resource.adoc │ │ ├── REQ_projections-response.adoc │ │ └── REQ_response-headers.adoc │ ├── requirements_class_api_operations.adoc │ ├── requirements_class_background.adoc │ ├── requirements_class_collection-map.adoc │ ├── requirements_class_collections-selection.adoc │ ├── requirements_class_core.adoc │ ├── requirements_class_cors.adoc │ ├── requirements_class_crs.adoc │ ├── requirements_class_dataset-map.adoc │ ├── requirements_class_datetime.adoc │ ├── requirements_class_display_resolution.adoc │ ├── requirements_class_format_html.adoc │ ├── requirements_class_format_jpeg.adoc │ ├── requirements_class_format_jpegxl.adoc │ ├── requirements_class_format_png.adoc │ ├── requirements_class_format_svg.adoc │ ├── requirements_class_format_tiff.adoc │ ├── requirements_class_general_subsetting.adoc │ ├── requirements_class_orientation.adoc │ ├── requirements_class_projection.adoc │ ├── requirements_class_scaling.adoc │ ├── requirements_class_spatial-subsetting.adoc │ ├── requirements_class_styled-map.adoc │ ├── requirements_class_tilesets.adoc │ ├── scaling │ │ ├── REQ_height-definition.adoc │ │ ├── REQ_scale-denominator-definition.adoc │ │ └── REQ_width-definition.adoc │ ├── spatial-subsetting │ │ ├── REQ_bbox-crs-definition.adoc │ │ ├── REQ_bbox-definition.adoc │ │ ├── REQ_center-crs-definition.adoc │ │ ├── REQ_center-definition.adoc │ │ ├── REQ_map-success.adoc │ │ ├── REQ_subset-crs-definition.adoc │ │ ├── REQ_subset-definition.adoc │ │ ├── REQ_subset-response.adoc │ │ └── REQ_subsetting-width-height-definition.adoc │ ├── styled-map │ │ ├── REQ_desc-links.adoc │ │ └── REQ_operation.adoc │ └── tilesets │ │ ├── REQ_desc-links.adoc │ │ └── REQ_tiles-parameters.adoc │ ├── resources │ ├── bibtex-file.bib │ ├── fonts │ │ ├── Palatino-Bold.ttf │ │ ├── Palatino-BoldItalic.ttf │ │ ├── Palatino-Italic.ttf │ │ ├── Palatino-Roman.ttf │ │ ├── SourceSansPro-Bold.ttf │ │ ├── SourceSansPro-BoldItalic.ttf │ │ ├── SourceSansPro-Italic.ttf │ │ ├── SourceSansPro-Regular.ttf │ │ ├── mplus1mn-bold-ascii.ttf │ │ ├── mplus1mn-bold_italic-ascii.ttf │ │ ├── mplus1mn-italic-ascii.ttf │ │ ├── mplus1mn-regular-ascii-conums.ttf │ │ ├── mplus1p-regular-fallback.ttf │ │ ├── notoserif-bold-subset.ttf │ │ ├── notoserif-bold_italic-subset.ttf │ │ ├── notoserif-italic-subset.ttf │ │ └── notoserif-regular-subset.ttf │ ├── lncs.csl │ ├── ogc-theme.yml │ └── stylesheets │ │ ├── coderay-asciidoctor.css │ │ ├── ogc.css │ │ └── rocket-panda.css │ ├── standard.css │ └── stylesheets │ └── coderay-asciidoctor.css ├── extensions ├── README.md ├── cartographicLayout │ ├── clause_20_map_paramsCartographicLayout.adoc │ ├── recommendations │ │ └── cartographic-layout │ │ │ └── PER_carto-layout-crs-curie.adoc │ └── requirements │ │ ├── cartographic-layout │ │ ├── REQ_attribution-definition.adoc │ │ ├── REQ_compass-definition.adoc │ │ ├── REQ_grid-crs-definition.adoc │ │ ├── REQ_legend-definition.adoc │ │ ├── REQ_map-title-definition.adoc │ │ ├── REQ_scale-bar-definition.adoc │ │ └── REQ_situation-map-definition.adoc │ │ ├── requirements_class_cartographic-layout-attribution.adoc │ │ ├── requirements_class_cartographic-layout-compass.adoc │ │ ├── requirements_class_cartographic-layout-grid-crs.adoc │ │ ├── requirements_class_cartographic-layout-legend.adoc │ │ ├── requirements_class_cartographic-layout-scale-bar.adoc │ │ ├── requirements_class_cartographic-layout-situation-map.adoc │ │ └── requirements_class_cartographic-layout-title.adoc └── clause_2_conformance.adoc ├── implementations.adoc ├── ogcapi-ogc-org-maps-overview.md ├── openapi ├── .validaterc ├── README.md ├── api │ ├── README.md │ ├── all-collections.json │ ├── styles.json │ └── tileMatrixSets.json ├── ogcapi-maps-1.bundled.json ├── ogcapi-maps-1.yaml ├── parameters │ ├── common-geodata │ │ ├── bbox.yaml │ │ ├── collectionId-all.yaml │ │ ├── datetime.yaml │ │ └── limit-collections.yaml │ ├── maps-core │ │ ├── bbox-crs.yaml │ │ ├── bgcolor.yaml │ │ ├── center-crs.yaml │ │ ├── center.yaml │ │ ├── collections.yaml │ │ ├── crs-datum.yaml │ │ ├── crs-proj-center.yaml │ │ ├── crs-proj-method.yaml │ │ ├── crs-proj-params.yaml │ │ ├── crs.yaml │ │ ├── height.yaml │ │ ├── mm-per-pixel.yaml │ │ ├── orientation.yaml │ │ ├── scale-denominator.yaml │ │ ├── subset-crs.yaml │ │ ├── subset.yaml │ │ ├── transparent.yaml │ │ ├── void-color.yaml │ │ ├── void-transparent.yaml │ │ └── width.yaml │ ├── styles-core │ │ ├── styleId-collection.yaml │ │ └── styleId.yaml │ ├── tiles-core │ │ ├── tileCol.yaml │ │ ├── tileMatrix.yaml │ │ └── tileRow.yaml │ └── unspecified │ │ ├── f-map.yaml │ │ ├── f-mapTile.yaml │ │ ├── f-metadata.yaml │ │ └── tileMatrixSetId.yaml ├── paths │ ├── common-core │ │ ├── pAPI.yaml │ │ ├── pConformance.yaml │ │ └── pLandingPage.yaml │ ├── common-geodata │ │ ├── pCollection.yaml │ │ └── pCollectionsList.yaml │ ├── dynamic │ │ ├── pAllCollections.yaml │ │ ├── pStyles.yaml │ │ └── pTileMatrixSets.yaml │ ├── maps-core │ │ ├── pCollectionMap.yaml │ │ ├── pDataSetMap.yaml │ │ ├── pProjections.yaml │ │ ├── pStyledCollectionMap.yaml │ │ └── pStyledDataSetMap.yaml │ └── tiles-core │ │ ├── collection-tiles │ │ ├── map-tiles │ │ │ ├── pCollectionMapTile.yaml │ │ │ ├── pCollectionMapTileSet.yaml │ │ │ └── pCollectionMapTileSetsList.yaml │ │ └── styled-map-tiles │ │ │ ├── pStyledCollectionMapTile.yaml │ │ │ ├── pStyledCollectionMapTileSet.yaml │ │ │ └── pStyledCollectionMapTileSetsList.yaml │ │ ├── dataset-tiles │ │ ├── map-tiles │ │ │ ├── pDataSetMapTile.yaml │ │ │ ├── pDataSetMapTileSet.yaml │ │ │ └── pDataSetMapTileSetsList.yaml │ │ └── styled-map-tiles │ │ │ ├── pStyledDataSetMapTile.yaml │ │ │ ├── pStyledDataSetMapTileSet.yaml │ │ │ └── pStyledDataSetMapTileSetsList.yaml │ │ └── tileMatrixSets │ │ ├── pTileMatrixSet.yaml │ │ └── pTileMatrixSetsList.yaml ├── responses │ ├── common-core │ │ ├── rAPI.yaml │ │ ├── rConformance.yaml │ │ ├── rException.yaml │ │ ├── rInvalidParameter.yaml │ │ ├── rLandingPage.yaml │ │ ├── rNotAcceptable.yaml │ │ ├── rNotFound.yaml │ │ └── rServerError.yaml │ ├── common-geodata │ │ ├── rCollection.yaml │ │ └── rCollectionsList.yaml │ ├── dynamic │ │ └── rEnumeration.yaml │ ├── maps-core │ │ ├── rEmptyMap.yaml │ │ ├── rMap.yaml │ │ └── rProjections.yaml │ └── tiles-core │ │ ├── rEmptyTile.yaml │ │ ├── rMapTile.yaml │ │ ├── rTileMatrixSet.yaml │ │ ├── rTileMatrixSetsList.yaml │ │ ├── rTileSet.yaml │ │ └── rTileSetsList.yaml └── schemas │ ├── common-core │ ├── confClasses.yaml │ ├── exception.yaml │ ├── landingPage.yaml │ └── link.yaml │ ├── common-geodata │ ├── collectionDesc.yaml │ ├── collections.yaml │ ├── crs.yaml │ ├── dataType.yaml │ ├── extent-uad.yaml │ ├── extent.yaml │ ├── numberMatched.yaml │ ├── numberReturned.yaml │ ├── projJSON.yaml │ └── timeStamp.yaml │ ├── dynamic │ ├── all-collections.yaml │ ├── enumeration.yaml │ ├── styles.yaml │ └── tileMatrixSets.yaml │ ├── maps-core │ └── projections.yaml │ └── tms │ ├── 2DBoundingBox.yaml │ ├── 2DPoint.yaml │ ├── geospatialData.yaml │ ├── propertiesSchema.yaml │ ├── style.yaml │ ├── tileMatrix.yaml │ ├── tileMatrixLimits.yaml │ ├── tileMatrixSet-item.yaml │ ├── tileMatrixSet.yaml │ ├── tilePoint.yaml │ ├── tileSet-item.yaml │ ├── tileSet.yaml │ └── variableMatrixWidth.yaml ├── previous_examples.md └── proposals └── README.md /.github/workflows/build-openapi-bundle.yml: -------------------------------------------------------------------------------- 1 | name: Build OpenAPI bundle 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - 'standard/openapi/**.yaml' 9 | 10 | jobs: 11 | build-openapi-bundle: 12 | name: Generate OpenAPI bundle 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Setup npm 16 | uses: actions/setup-node@v2 17 | - name: Install dependencies 18 | run: npm install -g @apidevtools/swagger-cli 19 | - name: Checkout 20 | uses: actions/checkout@v2 21 | with: 22 | fetch-depth: 0 23 | - name: Generate OpenAPI bundle 24 | run: | 25 | cd standard/openapi 26 | swagger-cli bundle -o ogcapi-maps-1.bundled.json ogcapi-maps-1.yaml 27 | - name: Commit changes 28 | uses: EndBug/add-and-commit@v9 29 | with: 30 | author_name: Tom Kralidis 31 | author_email: tomkralidis@gmail.com 32 | message: 'Updating OpenAPI bundle' 33 | add: '*.json' 34 | cwd: './standard/openapi/' 35 | 36 | -------------------------------------------------------------------------------- /.github/workflows/test-build-openapi-bundle.yml: -------------------------------------------------------------------------------- 1 | name: Test build OpenAPI bundle 2 | 3 | on: 4 | pull_request: 5 | branches: 6 | - master 7 | paths: 8 | - 'standard/openapi/**.yaml' 9 | 10 | jobs: 11 | test-build-openapi-bundle: 12 | name: Generate OpenAPI bundle 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Setup npm 16 | uses: actions/setup-node@v2 17 | - name: Install dependencies 18 | run: npm install -g @apidevtools/swagger-cli 19 | - name: Checkout 20 | uses: actions/checkout@v2 21 | with: 22 | repository: ${{ github.event.pull_request.head.repo.full_name }} 23 | ref: ${{ github.event.pull_request.head.ref }} 24 | #with: 25 | # fetch-depth: 0 26 | - name: Generate OpenAPI bundle 27 | run: | 28 | cd standard/openapi 29 | swagger-cli bundle -o ogcapi-maps-1.bundled.json ogcapi-maps-1.yaml 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | core/standard/iev/ 3 | relaton/ 4 | core/standard/20-058.err.html 5 | core/standard/20-058.html 6 | core/standard/20-058.presentation.xml 7 | -------------------------------------------------------------------------------- /QuickGuide/README.md: -------------------------------------------------------------------------------- 1 | # Quickstart Guide 2 | 3 | What do you what to do? 4 | * Tiles 5 | - [Vector tiles](https://github.com/opengeospatial/OGC-API-Tiles/blob/master/QuickGuide/VectorTiles.md) 6 | - [Map tiles](https://github.com/opengeospatial/OGC-API-Tiles/blob/master/QuickGuide/MapTiles.md) 7 | * maps 8 | - [Maps](Maps.md) 9 | -------------------------------------------------------------------------------- /asciidoctor.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": { 3 | "OGC_doc_number": "20-058", 4 | "urn":"http://www.opengis.net/doc/IS/ogcapi-maps-1/20-058.adoc", 5 | "title":"OGC API - Maps - Part 1: Core", 6 | "path":"core/standard/20-058.adoc", 7 | "options": ["--trace"], 8 | "a":[ 9 | "data-uri", 10 | "stylesdir=./resources/stylesheets", 11 | "dot=/usr/bin/dot" 12 | ], 13 | "r":[ 14 | "asciidoctor-diagram" 15 | ] 16 | }, 17 | "2": { 18 | "OGC_doc_number": "21-XXX", 19 | "urn":"http://www.opengis.net/doc/IS/ogcapi-maps-2/21-XXX.adoc", 20 | "title":"OGC API - Maps - Part 2: Partitioning", 21 | "path":"core/standard/21-XXX.adoc", 22 | "options": ["--trace"], 23 | "a":[ 24 | "data-uri", 25 | "stylesdir=./resources/stylesheets", 26 | "dot=/usr/bin/dot" 27 | ], 28 | "r":[ 29 | "asciidoctor-bibtex" 30 | ] 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | * Chuck Heazel [@cmheazel](https://github.com/cmheazel) 2 | -------------------------------------------------------------------------------- /core/DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | ## Development Guidelines 2 | 3 | TBD 4 | 5 | ## Specification Driving factors 6 | 7 | TBD 8 | 9 | ## Specification Change Criteria 10 | 11 | TBD 12 | 13 | ## Specification Change Process 14 | 15 | TBD 16 | 17 | ## Tracking Process 18 | 19 | * GitHub is the medium of record for all spec designs, use cases, and so on. 20 | 21 | 22 | ## Release Process 23 | 24 | TBD 25 | 26 | ## Draft Features 27 | 28 | 29 | ## Transparency 30 | 31 | 32 | 33 | ## Participation 34 | 35 | 36 | 37 | ## Community Roles 38 | 39 | -------------------------------------------------------------------------------- /core/README.md: -------------------------------------------------------------------------------- 1 | # OGC API - Maps - Part 1: Core Standard 2 | 3 | This directory contains the OGC API - Maps - Part 1: Core Standard. The Standard defines a Web API for requesting map images over the Internet. OGC API - Maps makes it easy for a client to request images, changing parameters such as size and coordinate reference systems at the time of request. A server that implements OGC API - Maps provides information about what maps it offers, as well as producing a map and answering queries about the content of the maps. OGC API - Maps is expected to address use cases similar to those addressed by the Web Map Service (WMS) Standard. 4 | 5 | ## Building 6 | 7 | ``` 8 | cd standard 9 | 10 | docker run -v "$(pwd)":/metanorma -v ${HOME}/.fontist/fonts/:/config/fonts metanorma/metanorma metanorma compile --agree-to-terms -t ogc -x html,pdf 20-058.adoc 11 | 12 | ``` 13 | -------------------------------------------------------------------------------- /core/index.adoc: -------------------------------------------------------------------------------- 1 | index.adoc 2 | 3 | nothing here 4 | -------------------------------------------------------------------------------- /core/schemas/metadata/crs.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2019-09/schema", 3 | "title": "CRS", 4 | "oneOf": [ 5 | { 6 | "description": "Simplification of the object into a url if the other properties are not present", 7 | "type": "string" 8 | }, 9 | { 10 | "type": "object", 11 | "oneOf": [ 12 | { 13 | "required": 14 | [ 15 | "uri" 16 | ], 17 | "properties": 18 | { 19 | "uri": { 20 | "description": "Reference to one coordinate reference system (CRS)", 21 | "type": "string", 22 | "format": "uri" 23 | } 24 | } 25 | }, 26 | { 27 | "required": 28 | [ 29 | "wkt" 30 | ], 31 | "properties": 32 | { 33 | "wkt": { 34 | "description": "A string defining the CRS using the JSON encodng for Well Known Text", 35 | "$ref": "projJSON.json" 36 | } 37 | } 38 | }, 39 | { 40 | "required": 41 | [ 42 | "referenceSystem" 43 | ], 44 | "properties": 45 | { 46 | "referenceSystem": { 47 | "description": "A reference system data structure as defined in the MD_ReferenceSystem of the ISO 19115", 48 | "type": "object" 49 | } 50 | } 51 | } 52 | ] 53 | } 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /core/standard/.gitignore: -------------------------------------------------------------------------------- 1 | standard_document.html 2 | standard_document.pdf 3 | -------------------------------------------------------------------------------- /core/standard/README.md: -------------------------------------------------------------------------------- 1 | # OGC API - Maps - Part 1: Core Specification 2 | 3 | This directory contains the OGC API - Maps - Part 1: Core specification. The specification defines a Web API for requesting map images over the Internet. OGC API - Maps makes it easy for a client to request images, changing parameters such as size and coordinate reference systems at the time of request. A server that implements OGC API - Maps provides information about what maps it offers, as well as producing a map and answering queries about the content of the maps. OGC API - Maps is expected to address use cases similar to those addressed by the Web Map Service (WMS) standard. 4 | 5 | 6 | ## Building 7 | 8 | ``` 9 | docker run -v "$(pwd)":/metanorma -v ${HOME}/.fontist/fonts/:/config/fonts metanorma/metanorma metanorma compile --agree-to-terms -t ogc -x html,pdf 20-058.adoc 10 | 11 | ``` -------------------------------------------------------------------------------- /core/standard/annex_bibliography.adoc: -------------------------------------------------------------------------------- 1 | [bibliography] 2 | [[Bibliography]] 3 | == Bibliography 4 | 5 | * [[[SDWBP,SDWBP]]], W3C/OGC: Spatial Data on the Web Best Practices, W3C Working Group Note 28 September 2017, https://www.w3.org/TR/sdw-bp/ 6 | * [[[DWBP,DWBP]]], W3C: Data on the Web Best Practices, W3C Recommendation 31 January 2017, https://www.w3.org/TR/dwbp/ 7 | * [[[DCAT,DCAT]]], W3C: Data Catalog Vocabulary, W3C Recommendation 16 January 2014, https://www.w3.org/TR/vocab-dcat/ 8 | * [[[link-relations,link-relations]]], Internet Assigned Numbers Authority (IANA). Link Relation Types [online, viewed 2020-07-09], https://www.iana.org/assignments/link-relations/link-relations.xml 9 | * [[[ogc06-042,OGC 06-042]]], 10 | * [[[ogc19-069,OGC 19-069]]], -------------------------------------------------------------------------------- /core/standard/clause_16_map_paramCRS.adoc: -------------------------------------------------------------------------------- 1 | [[rc_crs]] 2 | == Requirements Class "Coordinate Reference System" 3 | 4 | [[maps-crs-overview]] 5 | === Overview 6 | 7 | include::requirements/requirements_class_crs.adoc[] 8 | 9 | In WMS 1.3 the CRS parameters had two purposes: To indicate the CRS of the data rendered in the map and the CRS of the coordinates of the BBOX parameter. In the Maps API Standard, these two purposes have been separated. This section describes how to request a map in a specific CRS. 10 | 11 | For _OGC API - Maps_ and _OGC API - Coverages_, a native CRS (also called a _storage CRS_) is defined. The `Content-Crs:` header (see <>) specifies the CRS used in the response to avoid confusion. 12 | 13 | === Operation 14 | 15 | The Maps API core requirements class defines how to retrieve a map. The CRS requirements class specifies parameters needed to retrieve a map in a particular output CRS. 16 | 17 | ==== Parameter `crs` 18 | A successful GET response is described in the Maps API core class (https://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/core). 19 | 20 | include::requirements/crs/REQ_crs-definition.adoc[] 21 | 22 | See how to determine the native (storage) CRS for the collection and the dataset in <> and <> respectively. 23 | 24 | NOTE: The default CRS of the BBOX is https://www.opengis.net/def/crs/OGC/1.3/CRS84 but the default CRS of the map is the native (storage) CRS 25 | 26 | include::recommendations/crs/PER_crs-crs-curie.adoc[] 27 | 28 | ==== Response 29 | 30 | include::requirements/crs/REQ_map-success.adoc[] 31 | 32 | ==== Error conditions 33 | 34 | A general summary of the HTTP status codes can be found in https://www.opengis.net/doc/IS/ogcapi-features-1/1.0[OGC API - Features - Part 1: Core, version 1.0] as well as in the https://docs.ogc.org/is/19-072/19-072.html[OGC API – Common – Part 1: Core] Standard. 35 | 36 | If the parameter value for `crs` is not valid for the collections, the status code of the response will be `400`. 37 | -------------------------------------------------------------------------------- /core/standard/clause_17_map_orientation.adoc: -------------------------------------------------------------------------------- 1 | [[rc_orientation]] 2 | == Requirements Class "Orientation" 3 | 4 | [[maps-orientation-overview]] 5 | === Overview 6 | 7 | include::requirements/requirements_class_orientation.adoc[] 8 | 9 | This requirements class defines the ability for clients to request a map whose content is rotated by a counterclockwise orientation specified in degrees, resulting in 10 | the viewing perspective being rotated by that same orientation in a clockwise direction. 11 | 12 | === Operation 13 | 14 | ==== Parameter `orientation` 15 | 16 | include::requirements/orientation/REQ_orientation.adoc[] 17 | 18 | ==== Response headers 19 | 20 | include::requirements/orientation/REQ_response-headers.adoc[] 21 | 22 | Example of a request and associated response headers: 23 | 24 | .Example of a request 25 | ================= 26 | [source] 27 | ---- 28 | /map?orientation=40 29 | ---- 30 | ================= 31 | 32 | .Example of associated response headers 33 | ================= 34 | [source] 35 | ---- 36 | Content-Crs: 37 | Content-Orientation: 40 38 | Content-Bbox: -10000,-4000,10000,4000 39 | ---- 40 | ================= 41 | 42 | ==== Response 43 | 44 | A successful GET response is described in the Maps API core class (https://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/core). 45 | 46 | ==== Error conditions 47 | 48 | A general summary of the HTTP status codes can be found in https://www.opengis.net/doc/IS/ogcapi-features-1/1.0[_OGC API - Features - Part 1: Core_, version 1.0] as well as in the https://docs.ogc.org/is/19-072/19-072.html[OGC API – Common – Part 1: Core] Standard. 49 | 50 | If the parameter value for the orientation is not a valid orientation, the status code of the response will be `400`. 51 | -------------------------------------------------------------------------------- /core/standard/clause_1_scope.adoc: -------------------------------------------------------------------------------- 1 | == Scope 2 | 3 | The _OGC API - Maps - Part 1: Core_ Standard (hereafter termed the _Maps API_) specifies operations to distribute maps and map tiles in a manner independent of the underlying data store. 4 | The Maps API can be described and documented using the https://www.openapis.org/[OpenAPI] specification and specifies resources for discovering and retrieving maps from a Web API. 5 | 6 | Specifically, this _OGC API - Maps_ Standard supports the following: 7 | 8 | * Discovery operations that allow an implementation instance of the Maps API Standard to be interrogated to determine capabilities and to retrieve information about this distribution of maps. This information includes the API definition (if also implementing https://www.opengis.net/doc/is/ogcapi-common-1/1.0[_OGC API - Common - Part 1: Core_]), as well as metadata about the data layers provided and the Coordinate Reference System(s) supported by the Web API implementation instance. 9 | * Retrieval operations that enable client applications to retrieve a map, using a default or pre-defined style, for an arbitrary geospatial resource, a dataset representing the full content available via the Maps API endpoint, or an individual collection of geospatial data representing part of the dataset. 10 | * Parameters for specifying the background and transparency of the map. 11 | * Parameters for specifying the scale of the map. 12 | * A parameter for specifying the pixel size of the device or medium on which the map is intended to be displayed. 13 | * Parameters for retrieving only a subset of the map. 14 | * A parameter for specifying a particular orientation for the map. 15 | * Parameters for specifying a Coordinate Reference System (CRS) for the map by reference or using a projection operation method (as defined by https://docs.ogc.org/as/18-005r4/18-005r4.html#100[OGC 18-005r4 Abstract Specification Topic 2 Referencing by Coordinates]), parameters for that method and a datum. 16 | -------------------------------------------------------------------------------- /core/standard/clause_24_map_CORS.adoc: -------------------------------------------------------------------------------- 1 | [[rc_cors]] 2 | == Requirements Class "CORS" 3 | 4 | === Overview 5 | 6 | include::requirements/requirements_class_cors.adoc[] 7 | 8 | Many current implementations of map clients are done in HTML and JavaScript on HTTPS. A common situation is that a single JavaScript client combines maps from different Web APIs and domains. In this case, Cross-Origin Resource Sharing (CORS) is applied by web browsers preventing access of data from a domain that is different from the Web API, if this is not explicitly allowed by the server headers. The CORS requirements class requires the implementation of CORS support for the Web APIs. 9 | 10 | === CORS for JavaScript clients 11 | 12 | include::requirements/cors/REQ_cors.adoc[] 13 | 14 | NOTE: It is not the purpose of this Standard to specify how CORS is implemented and that may change as web browsers and servers become more concerned about security (for example, currently a PNG in a is not affected by CORS but a PNG retrieved by the JavaScript fetch() function is affected). It is worth noting that a server that wants to authorize a JavaScript client application from another domain (under the CORS rules) should use the Access-Control-Allow-Origin: header to list which domains are authorized to read the map (or use `*` to indicate that all domains are authorized). Services that want to comply to the open data sharing principles should be willing to allow all clients reading the data even if they are in other domains. However, this is up to the server implementers. 15 | -------------------------------------------------------------------------------- /core/standard/clause_3_references.adoc: -------------------------------------------------------------------------------- 1 | [bibliography] 2 | == References 3 | 4 | * [[[rfc3339,RFC 3339]]], 5 | * [[[OGC19-072,OGC 19-072]]], 6 | * [[[ogc17-069r4,OGC 17-069r4]]], 7 | * [[[ogc20-057,OGC 20-057]]], 8 | * [[[ogc17-083r4,OGC 17-083r4]]], 9 | * [[[rfc8288,IETF RFC 8288]]], 10 | * [[[isoiec18181-1,ISO/IEC 18181-1:2024]]], 11 | * [[[isoiec18181-2,ISO/IEC 18181-2:2024]]], 12 | * [[[isoiec10918-1,ISO/IEC 10918-1]]], 13 | * [[[isoiec15948,ISO/IEC 15948]]], 14 | 15 | * [[[openapi,openapi]]] Open API Initiative: OpenAPI Specification 3.0.3, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md[https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md] 16 | * [[[TIFF_V6,TIFF V6]]], Adobe development association: TIFF Revision 6.0 Final — June 3, (1992) https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf 17 | * [[[SVG,SVG]]], W3C: Scalable Vector Graphics (SVG) v2. W3C Candidate Recommendation - October, (2018) https://www.w3.org/TR/SVG2/ 18 | * [[[HTML,HTML]]], WHATWG: HTML, Living Standard [online, viewed 2020-03-16]. Available at https://html.spec.whatwg.org/ 19 | 20 | NOTE: _OGC API - Features - Part 1: Core_ has been included as a temporary normative reference. When _OGC API - Common - Part 2: Geospatial data_ is released, the latter should replace _OGC API - Features - Part 1: Core_ as a normative reference in a future version of OGC API - Maps - Part 1: Core. 21 | -------------------------------------------------------------------------------- /core/standard/collections-selection/REQ_query-collections.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_collections-selection-resources-query]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/collections-selection/resources-query* 5 | ^|A |The parameter `collections` SHALL be supported by tileset resources and tiles resources for origins consisting of multiple geospatial data sub-resources (e.g. dataset tileset at `{datasetAPI}/tiles/WebMercatorQuad` and dataset tiles at `{datasetAPI}/tiles/WebMercatorQuad/{tileMatrix}/{tileRow}/{tileCol}`). 6 | |=== 7 | -------------------------------------------------------------------------------- /core/standard/collections-selection/REQ_resources-query.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections-selection_query-collections]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/collections-selection/query-collections* 5 | ^|A |An operation that acts on a resource consisting of multiple geospatial data sub-resources (e.g., a resource derived from a root dataset) SHALL support an optional parameter `collections` with the following characteristics (shown as an OpenAPI Specification 3.0 fragment) 6 | [source,YAML] 7 | ---- 8 | name: collections 9 | in: query 10 | required: false 11 | style: form 12 | explode: false 13 | schema: 14 | type: array 15 | items: 16 | type: string 17 | ---- 18 | ^|B |The parameter `collections` SHALL contain a comma-separated list of geospatial resource identifiers (e.g., collectionId's) or a comma-separated list of full URLs to geospatial resource identifiers. 19 | ^|C |Only the geospatial data resource identifiers that advertise a link compatible with the type of resource to be requested (e.g., with rel: `https://www.opengis.net/def/rel/ogc/1.0/tilesets-*` for tiles and with rel: `https://www.opengis.net/def/rel/ogc/1.0/map` for maps) in the geospatial data resource description SHALL be accepted as valid values in the parameter. 20 | ^|D |Only geospatial data resources that support the same `crs` parameter value (or the same TileMatrixSet for tiles) SHALL be accepted as valid values in the parameter value. 21 | ^|E |If there is more than one collection name and the style applied does not specify otherwise, the comma-separated collections SHALL be included in the result starting by the first (leftmost) and ending by the last (rightmost). In map tiles, this will result in the first collection being portrayed in the bottom and the others are rendered on top of the previous ones, one by one (the rightmost collection will become topmost in the portrayal). 22 | |=== 23 | -------------------------------------------------------------------------------- /core/standard/images/O2_dome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/O2_dome.jpg -------------------------------------------------------------------------------- /core/standard/images/barcelona.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/barcelona.png -------------------------------------------------------------------------------- /core/standard/images/landsatMiraMon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/landsatMiraMon.jpeg -------------------------------------------------------------------------------- /core/standard/images/nowcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/nowcast.png -------------------------------------------------------------------------------- /core/standard/images/relMapTiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/relMapTiles.png -------------------------------------------------------------------------------- /core/standard/images/sedan and nowcast.txt: -------------------------------------------------------------------------------- 1 | Nowcast source: 2 | https://nowcoast.noaa.gov/arcgis/rest/services/nowcoast/forecast_meteoceanhydro_sfc_ndfd_time/MapServer 3 | as seen in: 4 | https://www.arcgis.com/home/webmap/viewer.html?url=https%3A%2F%2Fnowcoast.noaa.gov%2Farcgis%2Frest%2Fservices%2Fnowcoast%2Fforecast_meteoceanhydro_sfc_ndfd_time%2FMapServer&source=sd 5 | 6 | Added this server: 7 | https://sedac.ciesin.columbia.edu/mapping/viewer/ 8 | but from the layer search by asking for "popultation" selecting GPWv4 Population Density 2015 9 | 10 | 20:27 20/11/2022 -------------------------------------------------------------------------------- /core/standard/images/sedan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/sedan.png -------------------------------------------------------------------------------- /core/standard/images/sedan_and_nowcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/sedan_and_nowcast.png -------------------------------------------------------------------------------- /core/standard/images/sentinel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/sentinel2.png -------------------------------------------------------------------------------- /core/standard/images/world_HR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/world_HR.png -------------------------------------------------------------------------------- /core/standard/images/world_HR_975.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/world_HR_975.png -------------------------------------------------------------------------------- /core/standard/images/world_T.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/world_T.png -------------------------------------------------------------------------------- /core/standard/images/world_T_850.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/world_T_850.png -------------------------------------------------------------------------------- /core/standard/images/xmp_blueMarble_3395.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_blueMarble_3395.jpg -------------------------------------------------------------------------------- /core/standard/images/xmp_blueMarble_4326.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_blueMarble_4326.jpg -------------------------------------------------------------------------------- /core/standard/images/xmp_hrdem_style1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_hrdem_style1.png -------------------------------------------------------------------------------- /core/standard/images/xmp_hrdem_style2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_hrdem_style2.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_bbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_bbox.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_bbox_crs_1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_bbox_crs_1024x1024.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_crs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_crs.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_h_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_h_512x512.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_1024x1024.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_12000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_12000.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_20000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_20000.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_30000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_30000.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_50000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_50000.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_8000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_8000.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_h_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_h_512x512.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_hw_1024x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_hw_1024x512.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_center_scale_hw_512x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_center_scale_hw_512x1024.png -------------------------------------------------------------------------------- /core/standard/images/xmp_map_no_param.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_map_no_param.png -------------------------------------------------------------------------------- /core/standard/images/xmp_s2l2a_center_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_s2l2a_center_scale.png -------------------------------------------------------------------------------- /core/standard/images/xmp_s2l2a_evi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_s2l2a_evi.png -------------------------------------------------------------------------------- /core/standard/images/xmp_s2l2a_scl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/images/xmp_s2l2a_scl.png -------------------------------------------------------------------------------- /core/standard/recommendations/background/PER_bgcolor-alpha.adoc: -------------------------------------------------------------------------------- 1 | [[per_bgcolor-alpha]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/background/bgcolor-alpha* 6 | ^|A |The implementation MAY support a `bgcolor` parameter with eight hexadecimal digits where the first two represent an alpha value, to be used as the opacity value for no data areas (where "FF" is completely opaque and "00" is fully transparent). 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/background/bgcolor-alpha 14 | part:: The implementation MAY support a `bgcolor` parameter with eight hexadecimal digits where the first two represent an alpha value, to be used as the opacity value for no data areas (where "FF" is completely opaque and "00" is fully transparent). 15 | ==== 16 | 17 | 18 | -------------------------------------------------------------------------------- /core/standard/recommendations/background/REC_bgcolor-definition.adoc: -------------------------------------------------------------------------------- 1 | [[rec_background_bgcolor-definition]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:per-id}* |*/rec/background/bgcolor-definition* 6 | ^|A |If `bgcolor` is not specified, and either `transparent` is set to `false` or the output format cannot encode transparency and the style applied to the map does not specify a background color, the server SHOULD use a neutral default color such as white or a light shade of gray. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/background/bgcolor-definition 14 | part:: If `bgcolor` is not specified, and either `transparent` is set to `false` or the output format cannot encode transparency and the style applied to the map does not specify a background color, the server SHOULD use a neutral default color such as white or a light shade of gray. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/collection-map/PER_desc-links.adoc: -------------------------------------------------------------------------------- 1 | [[per_collection-map_desc-links]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/rec/collection-map/desc-links* 6 | ^|A |The collection can be exposed as a map totally or partially. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/collection-map/desc-links 14 | part:: The collection can be exposed as a map totally or partially. 15 | ==== 16 | 17 | -------------------------------------------------------------------------------- /core/standard/recommendations/collection-map/REC_api-common.adoc: -------------------------------------------------------------------------------- 1 | [[rec_collection-map_api-common]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/collection-map/api-common* 6 | ^|A |Developers implementing the OGC API – Maps Standard should consider using the requirements classes specified in the https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core (OGC API - Common version 1.0). 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/collection-map/api-common 14 | part:: Developers implementing the OGC API – Maps Standard should consider using the requirements classes specified in the https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core (OGC API - Common version 1.0). 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/collection-map/REC_storage-epoch.adoc: -------------------------------------------------------------------------------- 1 | [[rec_collection-map_storage-epoch]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/collection-map/storage-epoch* 6 | ^|A |If the collection is available more efficiently using a particular CRS (exposed in the `storageCrs` parameter) that is a dynamic coordinate reference system, the property `storageCrsCoordinateEpoch` in the collection object of the geospatial collection SHOULD provide the epoch of that CRS. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/collection-map/storage-epoch 14 | part:: If the collection is available more efficiently using a particular CRS (exposed in the `storageCrs` parameter) that is a dynamic coordinate reference system, the property `storageCrsCoordinateEpoch` in the collection object of the geospatial collection SHOULD provide the epoch of that CRS. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/collections-selection/PER_collections-selection.adoc: -------------------------------------------------------------------------------- 1 | [[per_tiles-collections-selection]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/collections-selection/valid-collections* 6 | ^|A | An implementation MAY return an error when the specified list of collections is not supported, for reasons such as an incompatible combination, or an unsupported encoding or CRS for some of the selected collections. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/collections-selection/valid-collections 14 | part:: An implementation MAY return an error when the specified list of collections is not supported, for reasons such as an incompatible combination, or an unsupported encoding or CRS for some of the selected collections. 15 | ==== 16 | 17 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_content-attribution.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_content_attribution]] 2 | 3 | [recommendation] 4 | ==== 5 | [%metadata] 6 | identifier:: /rec/core/content-attribution 7 | part:: A `Content-Attribution:` header SHOULD be included in the response to a map request to indicate any attribution relevant to the data being returned, especially if this attribution varies based on the subset and scale of the request. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_content-crs.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_content_crs]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/core/content-crs* 6 | ^|A | Even if the content is in the https://www.opengis.net/def/crs/OGC/1.3/CRS84 CRS the headers SHOULD still include "Content-Crs" header to state the CRS. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/core/content-crs 14 | part:: Even if the content is in the https://www.opengis.net/def/crs/OGC/1.3/CRS84 CRS the headers SHOULD still include a "Content-Crs" header to state the CRS. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_map-op.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_map-op]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/core/map-op* 6 | ^|A |In the absence of subsetting parameters, the server SHOULD return the entire map. 7 | ^|B |In absence of the scaling parameter, a reasonable width and height SHOULD be selected that preserves the aspect ratio. 8 | |=== 9 | //// 10 | 11 | [recommendation] 12 | ==== 13 | [%metadata] 14 | identifier:: /rec/core/map-op 15 | part:: In the absence of subsetting parameters, the server SHOULD return the entire map. 16 | part:: In absence of the scaling parameter, a reasonable width and height SHOULD be selected that preserves the aspect ratio. 17 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/core/REC_multiple-media-types.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_multiple-media-types]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/core/multiple-media-types* 6 | ^|A |If "image/png" and "image/jpeg" are supported at an endpoint and both are present in the HTTP "Accept" request header with the same `q` value, and no other supported output format is present with a higher `q` value, the server SHOULD select between PNG and JPEG and return the format considered optimal. Typically, PNG will be returned if there is transparency or for categorical maps where a limited number of colors are used, and JPEG otherwise. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/core/multiple-media-types 14 | part:: If "image/png" and "image/jpeg" are supported at an endpoint and both are present in the HTTP "Accept" request header with the same `q` value, and no other supported output format is present with a higher `q` value, the server SHOULD select between PNG and JPEG and return the format considered optimal. Typically, PNG will be returned if there is transparency or for categorical maps where a limited number of colors are used, and JPEG otherwise. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/crs/PER_crs-crs-curie.adoc: -------------------------------------------------------------------------------- 1 | [[per_crs_crs-curie]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/crs/crs-curie* 6 | ^|A |For the `crs` parameter, unsafe CURIE without square brackets MAY be supported by the implementation. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/crs/crs-curie 14 | part:: For the `crs` parameter, unsafe CURIE without square brackets MAY be supported by the implementation. 15 | ==== 16 | 17 | NOTE: This makes the notation compatible with WMS. 18 | -------------------------------------------------------------------------------- /core/standard/recommendations/dataset-map/PER_desc-links.adoc: -------------------------------------------------------------------------------- 1 | [[per_dataset-map_desc-links]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/rec/dataset-map/desc-links* 6 | ^|A |collections in the endpoint `/collections/{collectionId}` can be considered geospatial resources that can be exposed as maps 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/dataset-map/desc-links 14 | part:: Collections in the endpoint `/collections/{collectionId}` can be considered geospatial resources that can be exposed as maps 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/dataset-map/PER_geodata-selection.adoc: -------------------------------------------------------------------------------- 1 | [[per_dataset-map_geodata-selection]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/dataset-map/geodata-selection* 6 | ^|A |If it is not possible and sensible to represent all geospatial data resources (`/collections`) in a map (e.g. it compromises performance or maps are become packed with too many elements), the server is allowed to select only the most significant geospatial data resources. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/dataset-map/geodata-selection 14 | part:: If it is not possible and sensible to represent all geospatial data resources (`/collections`) in a map (e.g. it compromises performance or maps are become packed with too many elements), the server is allowed to select only the most significant geospatial data resources. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/dataset-map/REC_geodata-selection.adoc: -------------------------------------------------------------------------------- 1 | [[rec_dataset-map_geodata-selection]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/dataset-map/geodata-selection* 6 | ^|A |When it is possible and sensible, all geospatial data resources (`/collections`) supporting the requested CRS SHOULD be represented in the map response. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/dataset-map/geodata-selection 14 | part:: When it is possible and sensible, all geospatial data resources (`/collections`) supporting the requested CRS SHOULD be represented in the map response. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/dataset-map/REC_storage-epoch.adoc: -------------------------------------------------------------------------------- 1 | [[rec_dataset_storage-epoch]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/dataset/storage-epoch* 6 | ^|A |If the dataset is available more efficiently using a particular CRS (exposed in the `storageCrs` parameter) that is a dynamic coordinate reference system, the property `storageCrsCoordinateEpoch` in the landing page of the dataset SHOULD provide the epoch of that CRS. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/dataset/storage-epoch 14 | part:: If the dataset is available more efficiently using a particular CRS (exposed in the `storageCrs` parameter) that is a dynamic coordinate reference system, the property `storageCrsCoordinateEpoch` in the landing page of the dataset SHOULD provide the epoch of that CRS. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/datetime/PER_datetime-axis.adoc: -------------------------------------------------------------------------------- 1 | [[per_datetime_closest]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/datetime/closest* 6 | ^|A |In case the requested map is not available in the exact requested datetime the closest or last previous time for which data is available MAY be returned by the server. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/datetime/closest 14 | part:: In case the requested map is not available in the exact requested datetime the closest or last previous time for which data is available MAY be returned by the server. 15 | ==== 16 | 17 | 18 | NOTE: An Earth Observation use case where this permission is useful is to allow retrieving a map of the last datetime where imagery is available, considering that a certain geographic area may only be observed at an interval of "every few days" and availability may be irregular and conditioned by clouds. 19 | -------------------------------------------------------------------------------- /core/standard/recommendations/datetime/REC_actual-datetime.adoc: -------------------------------------------------------------------------------- 1 | [[rec_datetime_actual-datetime]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/datetime/actual-datetime* 6 | ^|A |The server SHOULD add an HTTP header with `OGCAPI-datetime` as a name and a temporal geometry as a value, to indicate the instant or the temporal interval of the content of the resource. The temporal geometries value shall conform to the following syntax (using link:https://tools.ietf.org/html/rfc5234[ABNF]): 7 | 8 | [source] 9 | ---- 10 | interval = instant "/" instant 11 | datetime = instant / interval 12 | ---- 13 | 14 | The syntax of `instant` is specified by link:https://tools.ietf.org/html/rfc3339#section-5.6[RFC 3339, 5.6]. 15 | |=== 16 | //// 17 | 18 | [recommendation] 19 | ==== 20 | [%metadata] 21 | identifier:: /rec/datetime/actual-datetime 22 | part:: The server SHOULD add an HTTP header with `OGCAPI-datetime` as a name and a temporal geometry as a value, to indicate the instant or the temporal interval of the content of the resource. The temporal geometries value shall conform to the following syntax (using link:https://tools.ietf.org/html/rfc5234[ABNF]): 23 | + 24 | [source] 25 | ---- 26 | interval = instant "/" instant 27 | datetime = instant / interval 28 | ---- 29 | 30 | The syntax of `instant` is specified by link:https://tools.ietf.org/html/rfc3339#section-5.6[RFC 3339, 5.6]. 31 | 32 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/format_html/REC_content.adoc: -------------------------------------------------------------------------------- 1 | [[rec_html_content]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/html/content* 6 | ^|A |A HTML encoding MAY internally use requests to maps in image/png or image/jpeg format using this OGC API, to present the map images (e.g. in img src tags) to start and as a response of the actions of the user (e.g. zoom and pan). 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/html/content 14 | part:: An HTML encoding MAY internally use requests to maps in image/png or image/jpeg format using this OGC API, to present the map images (e.g. in img src tags) to start and as a response to the actions of the user (e.g. zoom and pan). 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/format_svg/PER_overflow.adoc: -------------------------------------------------------------------------------- 1 | [[per_svg_overflow]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/rec/svg/overflow* 6 | ^|A |A SVG content of a map can contain features that are partially outside of the requested map bounding box (represented by negative coordinates or coordinates bigger than the requested width and height). 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/svg/overflow 14 | part:: SVG content of a map can contain features that are partially outside of the requested map bounding box (represented by negative coordinates or coordinates bigger than the requested width and height). 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/format_tiff/REC_geotiff.adoc: -------------------------------------------------------------------------------- 1 | [[rec_tiff_geotiff]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/tiff/geotiff* 6 | ^|A |A TIFF encoding SHOULD include georeference information using the https://docs.ogc.org/is/19-008r4/19-008r4.html[OGC GeoTIFF Standard]. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/tiff/geotiff 14 | part:: A TIFF encoding SHOULD include georeference information using the https://docs.ogc.org/is/19-008r4/19-008r4.html[OGC GeoTIFF Standard]. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/scaling/REC_dimensions.adoc: -------------------------------------------------------------------------------- 1 | [[rec_scaling_dimensions]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/scaling/dimensions* 6 | ^|A |If the `width` or `height` parameter is not specified for a request, and no specific bounding box is requested (using the `subset` or `bbox` parameters defined in the Subsetting requirements class), the implementation SHOULD use the same value for both dimensions to return a map with a square viewport or preserve a particular width to height ratio. 7 | ^|B |If neither `width` nor `height` parameter is specified for a request, and no specific bounding box is requested (using the `subset` or `bbox` parameters defined in the Subsetting requirements class), the implementation SHOULD select reasonable dimensions that will produce a map that is neither too small, nor require too much bandwidth to transfer or process (for example, around 1000 x 1000 pixels for the default 0.28 mm/pixel resolution). 8 | |=== 9 | //// 10 | 11 | [recommendation] 12 | ==== 13 | [%metadata] 14 | identifier:: /rec/scaling/dimensions 15 | part:: If the `width` or `height` parameter is not specified for a request, and no specific bounding box is requested (using the `subset` or `bbox` parameters defined in the Subsetting requirements class), the implementation SHOULD use the same value for both dimensions to return a map with a square viewport or preserve a particular width to height ratio. 16 | part:: If neither `width` nor `height` parameter is specified for a request, and no specific bounding box is requested (using the `subset` or `bbox` parameters defined in the Subsetting requirements class), the implementation SHOULD select reasonable dimensions that will produce a map that is neither too small, nor require too much bandwidth to transfer or process (for example, around 1000 x 1000 pixels for the default 0.28 mm/pixel resolution). 17 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/scaling/REC_map-success-scale.adoc: -------------------------------------------------------------------------------- 1 | [[rec_scaling_map-success-scale]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/scaling/map-success-scale* 6 | ^|A |The resolution of the content represented in the map SHOULD be consistent with the `width` and `height` of the viewport indicated and should consider the display resolution (0.28 mm/pixel, unless the `mm-per-pixel` parameter is used) when applying symbology rules. These considerations should also be applied when simplifying the geometries for a vector format, such as KML or SVG. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/scaling/map-success-scale 14 | part:: The resolution of the content represented in the map SHOULD be consistent with the `width` and `height` of the viewport indicated and should consider the display resolution (0.28 mm/pixel, unless the `mm-per-pixel` parameter is used) when applying symbology rules. These considerations should also be applied when simplifying the geometries for a vector format, such as KML or SVG. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/scaling/REC_symbology.adoc: -------------------------------------------------------------------------------- 1 | [[rec_scaling_symbology]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/scaling/symbology* 6 | ^|A |An implementation rendering dynamical maps with styling capabilities SHOULD consider the requested or computed scale in applying scale-dependent symbology rules. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/scaling/symbology 14 | part:: An implementation serving dynamically rendered maps with styling capabilities SHOULD consider the requested or computed scale in applying scale-dependent symbology rules. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/spatial-subsetting/PER_map-outside-bounds.adoc: -------------------------------------------------------------------------------- 1 | [[per_spatial-subsetting_map-outside-bounds]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/spatial-subsetting/map-outside-bounds* 6 | ^|A |When the requested subset is outside the bounds of the requested CRS, the server MAY limit the Content-Bbox to the valid values in the CRS. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/spatial-subsetting/map-outside-bounds 14 | part:: When the requested subset is outside the bounds of the requested CRS, the server MAY limit the Content-Bbox to the valid values in the CRS. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/spatial-subsetting/PER_subset-crs-curie.adoc: -------------------------------------------------------------------------------- 1 | [[per_spatial-subsetting_crs-curie]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Permission {counter:per-id}* |*/per/spatial-subsetting/crs-curie* 6 | ^|A |For the `center-crs`, `bbox-crs` and `subset-crs` query parameters, an unsafe CURIE without square brackets MAY be supported by the implementation. 7 | |=== 8 | //// 9 | 10 | [permission] 11 | ==== 12 | [%metadata] 13 | identifier:: /per/spatial-subsetting/crs-curie 14 | part:: For the `center-crs`, `bbox-crs` and `subset-crs` query parameters, an unsafe CURIE without square brackets MAY be supported by the implementation. 15 | ==== 16 | 17 | NOTE: This makes the notation compatible with WMS. 18 | -------------------------------------------------------------------------------- /core/standard/recommendations/spatial-subsetting/REC_map-outside-bounds.adoc: -------------------------------------------------------------------------------- 1 | [[rec_spatial-subsetting_map-outside-bounds]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/spatial-subsetting/map-outside-bounds* 6 | ^|A |The server should try to honor the subsetting coordinates requested. For example, if the server has no data in the requested area, a map filled with the background color or transparent values based on the relevant query parameters specified should be returned. For example, if the subsetting coordinates requested are partially outside the server data, the area with no data SHOULD be filled with the background color or transparent values based on the relevant query parameters specified. 7 | |=== 8 | //// 9 | 10 | [recommendation] 11 | ==== 12 | [%metadata] 13 | identifier:: /rec/spatial-subsetting/map-outside-bounds 14 | part:: The server should try to honor the subsetting coordinates requested. For example, if the server has no data in the requested area, a map filled with the background color or transparent values based on the relevant query parameters specified should be returned. For example, if the subsetting coordinates requested are partially outside the server data, the area with no data SHOULD be filled with the background color or transparent values based on the relevant query parameters specified. 15 | ==== -------------------------------------------------------------------------------- /core/standard/recommendations/spatial-subsetting/REC_subset-crs-axis-names.adoc: -------------------------------------------------------------------------------- 1 | [[rec_spatial-subsetting_subset-crs-axis-names.adoc]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/spatial-subsetting/subset-crs-axis-names* 6 | ^|A |The names of the axis SHOULD be the abbreviated names of the axis in the CRS definition (e.g. the ones defined in the EPSG database). 7 | ^|B |'e' (in lowercase), 'X' (lowercase/uppercase) or 'Easting' (lowercase/uppercase) SHOULD be interpreted as synonymous of 'E'. 8 | ^|C |'n' (in lowercase) or 'Y' (lowercase/uppercase) or 'Northing' (lowercase/uppercase) SHOULD be interpreted as synonymous of 'N'. 9 | ^|D |'Long' (lowercase/uppercase) or 'Longitude' SHOULD be interpreted as synonymous of 'Lon'. 10 | ^|E |'Latitude' SHOULD be interpreted as synonymous of 'Lat'. 11 | |=== 12 | //// 13 | 14 | [recommendation] 15 | ==== 16 | [%metadata] 17 | identifier:: /rec/spatial-subsetting/subset-crs-axis-names 18 | part:: The names of the axis SHOULD be the abbreviated names of the axis in the CRS definition (e.g. the ones defined in the EPSG database). 19 | part:: 'e' (in lowercase), 'X' (lowercase/uppercase) or 'Easting' (lowercase/uppercase) SHOULD be interpreted as synonymous of 'E'. 20 | part:: 'n' (in lowercase) or 'Y' (lowercase/uppercase) or 'Northing' (lowercase/uppercase) SHOULD be interpreted as synonymous of 'N'. 21 | part:: 'Long' (lowercase/uppercase) or 'Longitude' SHOULD be interpreted as synonymous of 'Lon'. 22 | part:: 'Latitude' SHOULD be interpreted as synonymous of 'Lat'. 23 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/README.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceeding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /core/standard/requirements/README0.md: -------------------------------------------------------------------------------- 1 | This folder contains requirements description. 2 | 3 | Each file is a single requirement. The naming convention for these files is: 4 | 5 | "REQn.adoc" where "n" corresponds to the requirement number. Numbers should have preceeding zeros appropriate for the total number of requirements in the project (e.g., the first requirement could be REQ001 if less than 1000 requirements are anticipated). 6 | 7 | The requirement files are integrated into the main document as links. 8 | 9 | The requirement is expressed according to this pattern: 10 | 11 | NOTE: for each requirement, there should be a corresponding Abstract Test in the "abstract_tests" folder. 12 | 13 | NOTE: sample code may reference one or more requirements and should state which requirements are included in the code by adding the following line to the Extended Description: 14 | 15 | "#REQS: reqnum1,reqnum2,...reqnumn" 16 | -------------------------------------------------------------------------------- /core/standard/requirements/api-operations/REQ_completeness.adoc: -------------------------------------------------------------------------------- 1 | [[req_api_operations_completeness]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/api-operations/completeness 7 | part:: The API definition SHALL provide paths for all map, custom projections, tileset, tilesets list and tile resources provided by the API instance. 8 | part:: The resource paths defined in the API definition SHALL be consistent with the links to the same resources provided by the landing page, collections, tileset and tilesets list resources. 9 | part:: The resource paths defined in the API definition SHALL provide the description of the parameters that the map, tileset and tile resources need to operate that are specified in corresponding conformance classes. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/requirements/background/REQ_map-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_background_map-success]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/background/map-success 6 | part:: The color of the map in the areas with no data SHALL be exactly the one specified in the `bgcolor`. 7 | part:: The color in parts of the map outside of the valid areas of the projection / CRS SHALL be the one specified by `void-color`, or otherwise default to the same as the background color (whether specified by `bgcolor` or default). 8 | part:: The transparency setting in parts of the map outside of the valid areas of the projection / CRS SHALL be the one specified by `void-transparent`, or otherwise default to the same as the background transparency setting (whether specified by `transparent` or default). 9 | part:: In case the output format allows it and in the absence of the `transparent` parameter (or if it is `false`), the opacity (alpha value) of the map in the areas with no data SHALL be exactly 100% if `transparent` is `false` or 0% if `transparent` is `true`. 10 | ==== 11 | 12 | NOTE: If the renderer supports anti-aliasing, at the edges between data and no-data areas, the opacity may be a value between 0% and 100%. 13 | -------------------------------------------------------------------------------- /core/standard/requirements/background/REQ_void-color-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_background_void-color-definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/background/void-color-definition 7 | part:: The map operation SHALL support a parameter `void-color` to define a void color with the characteristics defined in the OpenAPI Specification 3.0 fragment: 8 | + 9 | [source,YAML] 10 | ---- 11 | void-color: 12 | name: void-color 13 | in: query 14 | description: |- 15 | Hexadecimal red-green-blue color value (0-255) or case-insensitive W3C web color name for the 16 | color of parts of the map outside of the valid CRS / projection areas (default=0xFFFFFF). For a six digit hexadecimal value, the first and second 17 | digits specify the intensity of red. The third and fourth digits specify the intensity of 18 | green. The fifth and sixth digits specify the intensity of blue. 19 | required: false 20 | style: form 21 | explode: false 22 | schema: 23 | type: string 24 | default: 0xFFFFFF 25 | ---- 26 | part:: The map operation SHALL support a `void-color` parameter which can be a hexadecimal red-green-blue color value (from 00 to FF, FF representing 255) or a case-insensitive https://www.w3.org/wiki/CSS/Properties/color/keywords[W3C web color name] for the parts of the map outside of the valid areas of the projection / CRS (default=0xFFFFFF). For a six-digit hexadecimal value, the first and second digits specify the intensity of red. The third and fourth digits specify the intensity of green. The fifth and sixth digits specify the intensity of blue. 27 | part:: If `void-color` is not specified, the same color value as for `bgcolor` (specified or default) SHALL be used. 28 | ==== 29 | -------------------------------------------------------------------------------- /core/standard/requirements/background/REQ_void-transparent-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_background_void-transparent-definition]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/background/void-transparent-definition 6 | part:: The map operation SHALL support an optional parameter `void-transparent` specifying whether to use a different transparent setting for parts of the map outside of the valid areas of the projection / CRS with the characteristics defined in the OpenAPI Specification 3.0 fragment: 7 | + 8 | [source,YAML] 9 | ---- 10 | name: void-transparent 11 | in: query 12 | description: 13 | '(defaults to the same value, specified or default, as `transparent`).' 14 | required: false 15 | style: form 16 | explode: false 17 | schema: 18 | type: boolean 19 | default: true 20 | ---- 21 | part:: The server SHALL interpret `void-transparent` as a Boolean indicating whether the parts of the map outside of the valid areas of the projection / CRS should be transparent. 22 | part:: If `void-transparent` is not specified, the server SHALL assume the same value as for `transparent` (specified or default). 23 | ==== 24 | -------------------------------------------------------------------------------- /core/standard/requirements/collection-map/REQ_desc-crs.adoc: -------------------------------------------------------------------------------- 1 | [[req_collection-map_desc-crs]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collection-map/desc-crs 7 | part:: The `crs` property in the collection object of a geospatial collection SHALL contain URI or safe CURIEs for the list of CRSs supported by the server for that collection. 8 | part:: If the collection is available more efficiently (e.g., if it is stored in the server in that CRS) using a particular CRS (the native CRS, also _called storage CRS_) that is not https://www.opengis.net/def/crs/OGC/1.3/CRS84, a `storageCrs` property in the collection object of a geospatial collection SHALL be the URI or the safe CURIE for that CRS. 9 | part:: If a `storageCrs` property is used and that is not https://www.opengis.net/def/crs/OGC/1.3/CRS84, an overall bounding box (and optional inner bounding boxes for sparse data) SHALL be provided in a `storageCrsBbox` property within the `spatial` dimension of the `extent` following the same schema as the CRS84 `bbox`. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/requirements/collection-map/REQ_desc-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_collection-map_desc-links]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collection-map/desc-links 7 | part:: The OGC API collection description SHALL include a link with relation type `https://www.opengis.net/def/rel/ogc/1.0/map` (or `[ogc-rel:map]`) and the href pointing to the map resource for this collection. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/collection-map/REQ_operation.adoc: -------------------------------------------------------------------------------- 1 | [[req_collection-map_map-operation]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/collection-map/map-operation 7 | part:: Every OGC API collection available as a map SHALL support an HTTP GET operation to a URL `/collections/{collectionId}/map` to retrieve a map from that collection resource. 8 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/collections-selection/REQ_collections-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_collections-selection_collections-response]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/collections-selection/collections-response* 6 | ^|A |Only the collections of geospatial data enumerated in the values of the `collections` parameter SHALL be used to generate the responses for the resource (map) to which they apply. 7 | ^|B |If there is more than one collection name and the style applied does not specify otherwise, the comma-separated collections SHALL be rendered in the result in an order starting with the first (leftmost) collection and ending with the last (rightmost). 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/collections-selection/collections-response 15 | part:: Only the collections of geospatial data enumerated in the values of the `collections` parameter SHALL be used to generate the responses for the resource (map) to which they apply. 16 | part:: If there is more than one collection name and the style applied does not specify otherwise, collections SHALL be rendered in the result in an order starting with the first (leftmost) collection and ending with the last (rightmost). 17 | ==== 18 | 19 | NOTE: In maps and map tiles, sub-requirement B will result in the first collection being portrayed at the "bottom" of the display stack with the others rendered on top of the previous ones, one by one (the rightmost collection will become topmost in the portrayal). 20 | -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_conformance-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_conformance-success]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/core/conformance-success* 6 | ^|A |If the API instance has a mechanism to advertise conformance classes, the list of conformance classes SHALL include the ones defined in this standard and listed in <> that are supported by this API implementation instance. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/core/conformance-success 14 | part:: If the API instance has a mechanism to advertise conformance classes, the list of conformance classes SHALL include the ones defined in this standard and listed in <> that are supported by this API implementation instance. 15 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/core/REQ_map-op.adoc: -------------------------------------------------------------------------------- 1 | [[req_core_map-op]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/core/map-op 7 | part:: Every map SHALL be available as an HTTP GET request to a URI that will be composed of three parts. 8 | The first part is the URI of a resource that can be represented as a map (with or without a style path parameter). 9 | The second part follows the pattern `/map`. The third part provides the retrieval parameters as needed. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/requirements/cors/REQ_cors.adoc: -------------------------------------------------------------------------------- 1 | [[req_cors_cors]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/cors/cors 7 | part:: The implementation SHALL support CORS as defined by W3C (https://www.w3.org/TR/2020/SPSD-cors-20200602/). 8 | ==== 9 | 10 | NOTE: By supporting CORS, an implementation allows JavaScript clients (e.g. Web Browser applications) to read the map from a domain different than the OGC API - Maps endpoint. 11 | -------------------------------------------------------------------------------- /core/standard/requirements/crs/REQ_crs-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_crs_crs-definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/crs/crs-definition 7 | part:: The map operation SHALL support a parameter `crs` with the characteristics defined in the OpenAPI Specification 3.0 fragment: 8 | + 9 | [source,YAML] 10 | ---- 11 | crs: 12 | name: crs 13 | in: query 14 | description: A coordinate reference system of the map response. A list of all supported CRS values can be found under the collection metadata. 15 | required: false 16 | schema: 17 | type: string 18 | example: https://www.opengis.net/def/crs/OGC/1.3/CRS84 19 | ---- 20 | part:: Any of the CRSs listed in the collection (or collections) description SHALL be supported. If the list of supported CRS is not present, only https://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be supported. 21 | part:: If the spatial subsetting requirements class is supported, the `bbox-crs` and the `subset-crs` SHALL additionally support the value specified in the `crs` parameter. 22 | part:: CRS expressed as URIs or as safe CURIEs SHALL be supported. 23 | ==== 24 | 25 | NOTE: When no `crs` parameters are specified, please refer to the Maps API core conformance class to know about the default CRS. 26 | -------------------------------------------------------------------------------- /core/standard/requirements/crs/REQ_map-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_crs_map-success]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/crs/map-success 7 | part:: The content of the map response SHALL be consistent with the requested CRS. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/dataset-map/REQ_desc-crs.adoc: -------------------------------------------------------------------------------- 1 | [[req_dataset-map_desc-crs]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/dataset-map/desc-crs 7 | part:: The `crs` property in the landing page of a dataset SHALL contain URIs or safe CURIEs for the list of CRSs supported by the dataset as a whole. 8 | part:: If the dataset is available more efficiently using a particular CRS that is not https://www.opengis.net/def/crs/OGC/1.3/CRS84, a `storageCrs` property in the landing page of a dataset SHALL have the URI or the safe CURIE for that CRS as a value. For example, it may be more efficient to retrieve a map in the same CRS used to store the data. Note that the native CRS is also called the _storage CRS_. 9 | part:: If a `storageCrs` property is used and that is not https://www.opengis.net/def/crs/OGC/1.3/CRS84, an overall bounding box (and optional inner bounding boxes for sparse data) SHALL be provided in a `storageCrsBbox` property within the `spatial` dimension of the `extent` following the same schema as the CRS84 `bbox`. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/requirements/dataset-map/REQ_desc-extent.adoc: -------------------------------------------------------------------------------- 1 | [[req_dataset-map_desc-extent]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/dataset-map/desc-extent 7 | part:: An extent CRS SHALL be provided in an "extent" property of the API landing page following the same schema as the "extent" property for the collection (see OGC API - Common - Part 2: Geospatial Data). 8 | ==== 9 | 10 | NOTE: The spatial bounding box is provided in https://www.opengis.net/def/crs/OGC/1.3/CRS84 for Earthly data. 11 | -------------------------------------------------------------------------------- /core/standard/requirements/dataset-map/REQ_landingpage.adoc: -------------------------------------------------------------------------------- 1 | [[req_dataset-map_landingpage]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/dataset-map/landingpage 7 | part:: The deployed API endpoint landing page SHALL include a link with relation type `https://www.opengis.net/def/rel/ogc/1.0/map` (or `[ogc-rel:map]`) to the dataset map URL at `/map`. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/dataset-map/REQ_operation.adoc: -------------------------------------------------------------------------------- 1 | [[req_dataset-map_operation]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/dataset-map/operation 7 | part:: The Maps API implementation SHALL support an HTTP GET operation for the `/map` URL to retrieve a map from the dataset API endpoint in the default style. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/datetime/REQ_datetime-axis.adoc: -------------------------------------------------------------------------------- 1 | [[req_datetime-axis.adoc]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/datetime/axis 7 | part:: To subset a generic time dimension, the server SHALL support "time" as axisname in the subset parameter 8 | ==== 9 | 10 | .A date-time (subset) 11 | ================= 12 | February 12, 2018, 23:20:52 UTC: 13 | 14 | `subset=time("2018-02-12T23:20:52Z")` 15 | ================= 16 | 17 | For resources with a temporal property that is a timestamp (such as `lastUpdate`), a date-time value would match all resources where the temporal property is identical. 18 | 19 | For resources with a temporal property that is a date or a time interval, a date-time value would match all resources where the timestamp is on that day or within the time interval. 20 | 21 | .Intervals (subset) 22 | ================= 23 | February 12, 2018, 00:00:00 UTC to March 18, 2018, 12:31:12 UTC: 24 | 25 | `subset=time("2018-02-12T00:00:00Z":"2018-03-18T12:31:12Z")` 26 | 27 | February 12, 2018, 00:00:00 UTC or later: 28 | 29 | `subset=time("2018-02-12T00:00:00Z":*)` 30 | 31 | March 18, 2018, 12:31:12 UTC or earlier: 32 | 33 | `subset=time(*:"2018-03-18T12:31:12Z")` 34 | ================= 35 | -------------------------------------------------------------------------------- /core/standard/requirements/datetime/REQ_datetime-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_datetime_datetime-definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/datetime/datetime-definition 7 | part:: The `datetime` parameter SHALL have the following characteristics (using an OpenAPI Specification 3.0 fragment): 8 | + 9 | [source,YAML] 10 | ---- 11 | name: datetime 12 | in: query 13 | required: false 14 | schema: 15 | type: string 16 | style: form 17 | explode: false 18 | ---- 19 | 20 | part:: Temporal geometries are either a date-time value or a time interval. The parameter value SHALL conform to the following syntax (using link:https://tools.ietf.org/html/rfc5234[ABNF]): 21 | + 22 | [source] 23 | ---- 24 | interval-bounded = instant "/" instant 25 | interval-bounded-start = [".."] "/" instant 26 | interval-bounded-end = instant "/" [".."] 27 | interval-unbounded = [".."] "/" [".."] 28 | interval = interval-bounded / interval-bounded-start / interval-bounded-end / interval-unbounded 29 | datetime = instant / interval 30 | ---- 31 | part:: The implementation SHALL support an `instant` defined as specified by link:https://tools.ietf.org/html/rfc3339#section-5.6[RFC 3339, 5.6], with the exception that the server is 32 | only required to support the `Z` UTC time notation, and not required to support local time offsets. 33 | part:: Time intervals unbounded at the start or at the end SHALL be supported using a double-dot (`..`) or an empty string for the start/end. 34 | ==== 35 | -------------------------------------------------------------------------------- /core/standard/requirements/datetime/REQ_datetime-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_datetime_datetime-response]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/datetime/datetime-response* 6 | ^|A |If the `datetime` parameter is provided by the client and supported by the server, then only resources that have a temporal geometry that intersects the temporal information in the `datetime` parameter SHALL be part of the result set. If a resource has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties. 7 | ^|B |The `datetime` parameter SHALL match all resources in the collection that are not associated with a temporal geometry. 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/datetime/datetime-response 15 | part:: If the `datetime` parameter is provided by the client and supported by the server, then only resources that have a temporal geometry that intersects the temporal information in the `datetime` parameter SHALL be part of the result set. If a resource has multiple temporal properties, it is the decision of the server whether only a single temporal property is used to determine the extent or all relevant temporal properties. 16 | part:: The `datetime` parameter SHALL match all resources in the collection that are not associated with a temporal geometry. 17 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/datetime/REQ_map-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_datetime_map-success]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/datetime/map-success* 6 | ^|A |The content of that response SHALL be consistent with the requested datetime. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/datetime/map-success 14 | part:: The content of that response SHALL be consistent with the requested datetime. 15 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/datetime/REQ_subset-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_datetime_subset-response]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/datetime/subset-response 7 | part:: Only that part of the resource that falls within the bounds of the subset expression SHALL be returned. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/display-resolution/REQ_map-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_display-resolution_map-success]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/display-resolution/map-success* 6 | ^|A |For an implementation supporting the Maps API _scaling_ requirements class, the implementation SHALL use the `mm-per-pixel` value instead of the default 0.28 mm/pixel when establishing the relationship between the dimensions of the output image, the scale and the spatial extent of the map. 7 | ^|B |The `mm-per-pixel` value SHALL be used instead of the default 0.28 mm/pixel when establishing scale for the purpose of applying styling and symbology rules to the map. For example, this needs to be considered for scale-dependent rule selectors as well as for graphical units in real world units (e.g., meters) or display units (e.g., millimeters). 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/display-resolution/map-success 15 | part:: For an implementation supporting the Maps API _scaling_ requirements class, the implementation SHALL use the `mm-per-pixel` value instead of the default 0.28 mm/pixel when establishing the relationship between the dimensions of the output image, the scale and the spatial extent of the map. 16 | part:: The `mm-per-pixel` value SHALL be used instead of the default 0.28 mm/pixel when establishing scale for the purpose of applying styling and symbology rules to the map. For example, this needs to be considered for scale-dependent rule selectors as well as for graphical units in real world units (e.g., meters) or display units (e.g., millimeters). 17 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/display-resolution/REQ_mm-per-pixel-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_display-resolution_mm-per-pixel-definition]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/display-resolution/mm-per-pixel-definition 7 | part:: The map operation SHALL support a parameter `mm-per-pixel` with the characteristics defined in the OpenAPI Specification 3.0 fragment: 8 | + 9 | [source,YAML] 10 | ---- 11 | mm-per-pixel: 12 | name: mm-per-pixel 13 | in: query 14 | description: 15 | size (in millimeters) of a pixel of the rendering device that presents the response. 16 | required: false 17 | style: form 18 | schema: 19 | type: number 20 | ---- 21 | part:: The implementation SHALL interpret `mm-per-pixel` as the size (in millimeters) of a rendering device pixel. 22 | part:: An HTTP 4xx error SHALL be returned if the `mm-per-pixel` value is not a positive number. 23 | part:: If the parameter `mm-per-pixel` is not provided, the server SHALL assume that the pixel size is 0.28 millimeters (90.71 pixels per inch). 24 | ==== 25 | 26 | NOTE: The definition of 0.28 as a default value is the same value as used in the Web Map Service (WMS) 1.3.0 Standard (OGC 06-042) and in the Symbology Encoding (SE) Implementation Specification 1.1.0 (OGC 05-077r4) that was later adopted by WMTS 1.0 (OGC 07-057r7) and 2D-TMS OGC (17-083r4). 0.28 mm was the actual pixel size of a common display from 2005. This value is still being used as reference, even if current display devices are built with much smaller pixel sizes. 27 | 28 | NOTE: Since the 1980s, the Microsoft Windows operating system has set its default standard display pixels per inch (PPI) to 96. This value results in an approximate value of 0.264 mm per pixel. The similarity of this value with the actual 0.28 mm adopted in this Standard can create some confusion. 29 | 30 | NOTE: Modern display devices (screens) have pixels so small that operating systems allow for defining a presentation scale factor bigger than one (e.g. 150%). In these circumstances, the actual size of the device pixels is not the same as the size used by the operating system. 31 | -------------------------------------------------------------------------------- /core/standard/requirements/format_html/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_html_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/html/content 7 | part:: Every 200-response of the server with the media type `text/html` SHALL be an HTML document representing the geospatial data as maps. 8 | ==== 9 | 10 | NOTE: An HTML page can contain links to other resources. In particular, it can contain image sources linked to map resources as image/png or image/jpeg that will represent the actual data. 11 | 12 | NOTE: An HTML page may contain MapML elements to represent the map (https://maps4html.org/MapML/spec/). 13 | -------------------------------------------------------------------------------- /core/standard/requirements/format_jpeg/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_jpeg_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/jpeg/content 7 | part:: Every 200-response of the server with the media type `image/jpeg` SHALL be a JPEG document representing only one map. 8 | part:: The colors of the JPEG SHALL represent geospatial features and/or coverage values in the map. 9 | part:: All maps representing parts of the same resource or resources and using the same style SHALL follow the same portrayal rules. 10 | ==== 11 | 12 | NOTE: The way the colors in the JPEG are mapped to geospatial features or coverage values is out of scope of the Maps API Standard. However, a common set of portrayal rules for all maps representing part of the same resource is essential, as maps are normally represented one after the other as a response to actions of the user (e.g., zoom and pan). 13 | 14 | NOTE: JPEG is an ideal format for some remote sensing imagery. The use of JPEG to represent linear features or color solid polygons is not recommended. 15 | -------------------------------------------------------------------------------- /core/standard/requirements/format_jpegxl/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_jpegxl_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/jpegxl/content 7 | part:: Every 200-response of the server with the media type `image/jxl` SHALL be a JPEG XL file representing only one map. 8 | part:: The JPEG XL SHALL be a color image representing the geospatial features or coverage values in the map. 9 | part:: All maps representing parts of the same resource or resources and using the same style SHALL follow the same portrayal rules. 10 | ==== 11 | 12 | NOTE: The way the colors in the JPEG XL are mapped to geospatial features or coverage values is out of scope of the Maps API Standard. 13 | However, a common set of portrayal rules for all maps representing part of the same resource is essential, as maps are normally represented one after the other as a response to actions of the user (e.g., zoom and pan). 14 | 15 | NOTE: JPEG XL is an ideal file format for all map types, due to its support for high image quality (including the possibility of lossless encoding), high compression ratio, high bit depth and translucency. 16 | -------------------------------------------------------------------------------- /core/standard/requirements/format_png/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_png_content]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/png/content* 6 | ^|A |Every 200-response of the server with the media type image/png SHALL be a PNG document representing only one map. 7 | ^|B |The colors of the PNG SHALL represent the geospatial features or coverage values in the map. 8 | ^|C |The alpha channel of the PNG SHALL be used when partial transparency is required 9 | ^|D |All maps representing parts of the same resource or resources and using the same style SHALL follow the same portrayal rules 10 | |=== 11 | //// 12 | 13 | [requirement] 14 | ==== 15 | [%metadata] 16 | identifier:: /req/png/content 17 | part:: Every 200-response of the server with the media type `image/png` SHALL be a PNG document representing only one map. 18 | part:: The colors of the PNG SHALL represent the geospatial features or coverage values in the map. 19 | part:: The alpha channel of the PNG SHALL be used when partial transparency is required 20 | part:: All maps representing parts of the same resource or resources and using the same style SHALL follow the same portrayal rules 21 | ==== 22 | 23 | NOTE: The way the colors in the PNG format are mapped to geospatial features or coverage values is out of scope for the Maps API Standard. However, a common set of portrayal rules for all maps representing part of the same resource is essential, as maps are normally represented one after the other as a response to actions of the user (e.g. zoom and pan). 24 | -------------------------------------------------------------------------------- /core/standard/requirements/format_svg/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_svg_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/svg/content 7 | part:: Every 200-response of the server with the media type `image/svg+xml` SHALL be an SVG document representing only a map. 8 | part:: The SVG coordinates inside the map SHALL start at 0,0 and end in the width and height of the request. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/standard/requirements/format_tiff/REQ_content.adoc: -------------------------------------------------------------------------------- 1 | [[req_tiff_content]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/tiff/content 7 | part:: Every 200-response of the server with the media type `image/tiff` SHALL be a TIFF document representing only one map. 8 | part:: The TIFF file SHALL represent colors by using an image palette or RGB combination. 9 | part:: All maps representing parts of the same resource or resources and using the same style SHALL follow the same portrayal rules or represent data with the same reference and units of measure. 10 | ==== 11 | 12 | NOTE: TIFF is an ideal support for geospatial grid data values in its original format. This is not allowed for OGC API - Maps and it is expected that OGC API endpoints dealing with coverages will support this mode. 13 | -------------------------------------------------------------------------------- /core/standard/requirements/general-subsetting/REQ_uniform-additional-dimensions.adoc: -------------------------------------------------------------------------------- 1 | [[req_general-subsetting_uniform-additional-dimensions]] 2 | [requirement] 3 | ==== 4 | [%metadata] 5 | identifier:: /req/general-subsetting/uniform-additional-dimensions 6 | part:: Wherever applicable (e.g., the collection or dataset description), the extent of any additional dimension(s) beyond temporal and spatial SHALL be described in a way similar to the temporal dimension, 7 | using the name of the dimension as a key and an object as value, with that object containing an `interval` property, a URI for the semantic `definition`, a `unit` of measure if applicable, 8 | and a `grid` definition if applicable, as specified in https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/master/openapi/schemas/common-geodata/extent-uad.yaml[_extent-uad.yaml_]. 9 | ==== 10 | -------------------------------------------------------------------------------- /core/standard/requirements/metadata/REC_smc-default-style.adoc: -------------------------------------------------------------------------------- 1 | [[rec_core_smc-default-style]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Recommendation {counter:rec-id}* |*/rec/core/default-style* 6 | ^|A |A successful execution will of a map request will return a map document that MAY contain a property called _defaultStyle_ that points to an style id that will be considered the default style 7 | ^|B |The value of the default style SHOULD be one of the ids listed in the property _styles_ 8 | ^|C |_defaultStyle_ conforms with the following data mode (shown as an OpenAPI Specification 3.0 fragment): 9 | 10 | [source,YAML] 11 | ---- 12 | default-style: 13 | type: string 14 | description: the style id of a recommended default style to use for this collection. This is informative and optional. 15 | example: 'topographic' 16 | ---- 17 | |=== 18 | //// 19 | 20 | [requirement] 21 | ==== 22 | [%metadata] 23 | identifier:: /rec/core/default-style 24 | part:: A successful execution will of a map request will return a map document that MAY contain a property called _defaultStyle_ that points to an style id that will be considered the default style 25 | part:: The value of the default style SHOULD be one of the ids listed in the property _styles_ 26 | part:: _defaultStyle_ conforms with the following data mode (shown as an OpenAPI Specification 3.0 fragment): 27 | + 28 | [source,YAML] 29 | ---- 30 | default-style: 31 | type: string 32 | description: the style id of a recommended default style to use for this collection. This is informative and optional. 33 | example: 'topographic' 34 | ---- 35 | ==== 36 | -------------------------------------------------------------------------------- /core/standard/requirements/orientation/REQ_response-headers.adoc: -------------------------------------------------------------------------------- 1 | [[req_orientation-response-headers]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/orientation/response-headers* 6 | ^|A |For responses to a map request where the `orientation` query parameter was used, a response header `Content-Orientation: [value in decimal degrees]` corresponding to the orientation of the map SHALL be returned. 7 | ^|B |For responses to a map request where the `orientation` query parameter was used, the `Content-Bbox` response header SHALL reflect the bounding box in the map output CRS prior to the orientation being applied. 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/orientation/response-headers 15 | part:: For responses to a map request where the `orientation` query parameter was used, a response header `Content-Orientation: [value in decimal degrees]` corresponding to the orientation of the map SHALL be returned. 16 | part:: For responses to a map request where the `orientation` query parameter was used, the `Content-Bbox` response header SHALL reflect the bounding box in the map output CRS prior to the orientation being applied. 17 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/projection/REQ_crs-datum.adoc: -------------------------------------------------------------------------------- 1 | [[req_projection-crs-datum]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/projection/crs-datum* 6 | ^|A |A `crs-datum` parameter as a URI allowing to select a datum for the output CRS SHALL be supported. 7 | ^|B |CURIEs in addition to URI to specify the datum parameter SHALL be supported. 8 | ^|C |If a `crs-datum` parameter is not specified, the native (storage) CRS datum SHALL be assumed (the WGS84 ensemble `[epsg-datum:6326]` datum is assumed if the native CRS is not declared). 9 | |=== 10 | //// 11 | 12 | [requirement] 13 | ==== 14 | [%metadata] 15 | identifier:: /req/projection/crs-datum 16 | part:: A `crs-datum` parameter as a URI allowing to select a datum for the output CRS SHALL be supported. 17 | part:: CURIEs in addition to URI to specify the datum parameter SHALL be supported. 18 | part:: If a `crs-datum` parameter is not specified, the native (storage) CRS datum SHALL be assumed (the WGS84 ensemble `[epsg-datum:6326]` datum is assumed if the native CRS is not declared). 19 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/projection/REQ_crs-proj-method.adoc: -------------------------------------------------------------------------------- 1 | [[req_projection-crs-proj-method]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/projection/crs-proj-method* 6 | ^|A |A `crs-proj-method` parameter supporting selection of a projection operation method SHALL be supported. 7 | ^|B |CURIEs in addition to URI to specify the projection method SHALL be supported. 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/projection/crs-proj-method 15 | part:: A `crs-proj-method` parameter supporting selection of a projection operation method SHALL be supported. 16 | part:: CURIEs in addition to URI to specify the projection method SHALL be supported. 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/projection/REQ_crs-proj-params.adoc: -------------------------------------------------------------------------------- 1 | [[req_projection-crs-proj-params]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/projection/crs-proj-params* 6 | ^|A |A `crs-proj-params` parameter SHALL be supported that enables selection of one or more value for operation method parameters, with values in between parentheses `(` `)` following the URI of a parameter, and different parameters separated by value. 7 | For example, `crs-proj-params=[epsg-parameter:8823](40),[epsg-parameter:8824](90)`. 8 | ^|B |In addition to URI to specify the projection parameters SHALL be supported. 9 | |=== 10 | //// 11 | 12 | [requirement] 13 | ==== 14 | [%metadata] 15 | identifier:: /req/projection/crs-proj-params 16 | part:: A `crs-proj-params` parameter SHALL be supported that enables selection of one or more values for operation method parameters, with values in between parentheses `(` `)` following the CURIE (or URI) of a projection parameter, 17 | and different parameters separated by value. For example, `crs-proj-params=[epsg-parameter:8823](40),[epsg-parameter:8824](90)`. 18 | part:: In addition to CURIEs, URIs to specify the projection parameters SHALL be supported. 19 | ==== 20 | -------------------------------------------------------------------------------- /core/standard/requirements/projection/REQ_projections-resource.adoc: -------------------------------------------------------------------------------- 1 | [[req_projection-projections-resource]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/projection/projections-resource* 6 | ^|A |A GET operation at `/projectionsAndDatums` providing at minimum a JSON representation SHALL be supported. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/projection/projections-resource 14 | part:: A GET operation at `/projectionsAndDatums` providing at minimum a JSON representation SHALL be supported. 15 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_api_operations.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_api_operations]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'API Operations' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/api-operations 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/landing-page 10 | requirement:: /req/api-operations/completeness 11 | requirement:: /req/api-operations/operation-id 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_background.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_background]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Background' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/background 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/background/bgcolor-definition 11 | requirement:: /req/background/transparent-definition 12 | requirement:: /req/background/void-color-definition 13 | requirement:: /req/background/void-transparent-definition 14 | requirement:: /req/background/map-success 15 | ==== 16 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_collection-map.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_collection]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Collection Map' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/collection-map 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: https://www.opengis.net/spec/ogcapi-common-2/1.0/req/collections 11 | requirement:: /req/collection-map/desc-links 12 | requirement:: /req/collection-map/desc-crs 13 | requirement:: /req/collection-map/map-operation 14 | ==== 15 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_collections-selection.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_collections-selection]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Collection Selection' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/collections-selection 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/collections-selection/collections-parameter 11 | requirement:: /req/collections-selection/collections-response 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_core.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_core]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Core' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | subject:: Web API 9 | requirement:: /req/core/map-op 10 | requirement:: /req/core/map-response 11 | requirement:: /req/core/conformance-success 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_cors.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_cors]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'CORS' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cors 8 | subject:: Web API 9 | inherit:: https://www.w3.org/TR/2020/SPSD-cors-20200602/ 10 | requirement:: /req/cors/cors 11 | ==== 12 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_crs.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_crs]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Coordinate Reference System' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/crs 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/crs/crs-definition 11 | requirement:: /req/crs/map-success 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_dataset-map.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_dataset]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Dataset Map' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/dataset-map 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/core 11 | inherit:: https://www.opengis.net/spec/ogcapi-common-1/1.0/req/landing-page 12 | requirement:: /req/dataset-map/landingpage 13 | requirement:: /req/dataset-map/desc-extent 14 | requirement:: /req/dataset-map/desc-crs 15 | requirement:: /req/dataset-map/operation 16 | ==== 17 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_datetime.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_datetime]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Date and Time' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/datetime 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/datetime/datetime-definition 11 | requirement:: /req/datetime/datetime-response 12 | requirement:: /req/datetime/subset-definition 13 | requirement:: /req/datetime/subset-response 14 | requirement:: /req/datetime/axis 15 | requirement:: /req/datetime/map-success 16 | ==== 17 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_display_resolution.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_display-resolution]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Display Resolution' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/display-resolution 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/display-resolution/mm-per-pixel-definition 11 | requirement:: /req/display-resolution/map-success 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_html.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_html]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'HTML' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/html 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | requirement:: /req/html/content 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_jpeg.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_jpeg]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'JPEG' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/jpeg 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | requirement:: /req/jpeg/content 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_jpegxl.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_jpegxl]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'JPEG XL' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/jpegxl 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | inherit:: <> 12 | requirement:: /req/jpegxl/content 13 | ==== 14 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_png.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_png]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'PNG' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/png 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | requirement:: /req/png/content 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_svg.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_svg]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'SVG' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/svg 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | requirement:: /req/svg/content 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_format_tiff.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_tiff]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'TIFF' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/tiff 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | inherit:: <> 11 | requirement:: /req/tiff/content 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_general_subsetting.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_general-subsetting]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'General Subsetting' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/general-subsetting 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/general-subsetting/uniform-additional-dimensions 11 | requirement:: /req/general-subsetting/subset-definition 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_orientation.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_orientation]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Orientation' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/orientation 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/orientation/orientation 11 | requirement:: /req/orientation/response-headers 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_projection.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_projection]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Custom Projection CRS' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/projection 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/projection/crs-proj-method 11 | requirement:: /req/projection/crs-proj-params 12 | requirement:: /req/projection/crs-proj-center-definition 13 | requirement:: /req/projection/crs-datum 14 | requirement:: /req/projection/response-headers 15 | requirement:: /req/projection/projections-resource 16 | requirement:: /req/projection/projections-response 17 | ==== 18 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_scaling.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_scaling]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Scaling' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/scaling 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/scaling/width-definition 11 | requirement:: /req/scaling/height-definition 12 | requirement:: /req/scaling/scale-denominator-definition 13 | ==== 14 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_spatial-subsetting.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_spatial-subsetting]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Spatial Subsetting' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/spatial-subsetting 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/spatial-subsetting/bbox-crs 11 | requirement:: /req/spatial-subsetting/subset-crs 12 | requirement:: /req/spatial-subsetting/center-crs 13 | requirement:: /req/spatial-subsetting/bbox-definition 14 | requirement:: /req/spatial-subsetting/subset-definition 15 | requirement:: /req/spatial-subsetting/subset-response 16 | requirement:: /req/spatial-subsetting/center-definition 17 | requirement:: /req/spatial-subsetting/width-height 18 | requirement:: /req/spatial-subsetting/map-success 19 | ==== 20 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_styled-map.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_styled-maps]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Styled Maps' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/styled-map 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 10 | requirement:: /req/styled-map/desc-links 11 | requirement:: /req/styled-map/map-operation 12 | ==== 13 | -------------------------------------------------------------------------------- /core/standard/requirements/requirements_class_tilesets.adoc: -------------------------------------------------------------------------------- 1 | [[rc_table_tilesets]] 2 | 3 | [requirements_class] 4 | .Requirements Class 'Map Tilesets' 5 | ==== 6 | [%metadata] 7 | identifier:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/tilesets 8 | subject:: Web API 9 | inherit:: https://www.opengis.net/spec/ogcapi-tiles-1/1.0/req/tilesets-list 10 | inherit:: https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 11 | requirement:: /req/tilesets/desc-links 12 | requirement:: /req/tilesets/tiles-parameters 13 | ==== 14 | -------------------------------------------------------------------------------- /core/standard/requirements/spatial-subsetting/REQ_center-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_spatial-subsetting_center-definition]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/spatial-subsetting/center-definition* 6 | ^|A |A `center` parameter SHALL be supported to specify the center of the subset of the map to include with coordinates in the CRS specified in the `center-crs` parameter value or in https://www.opengis.net/def/crs/OGC/1.3/CRS84 if the `center-crs` parameter is missing. 7 | ^|B |If the `center` parameter is used together with the `bbox` and/or with a `subset` parameter including any of the dimensions corresponding to those of the map bounding box, the server SHALL return a 400 client error. 8 | |=== 9 | //// 10 | 11 | [requirement] 12 | ==== 13 | [%metadata] 14 | identifier:: /req/spatial-subsetting/center-definition 15 | part:: A `center` parameter SHALL be supported to specify the center of the subset of the map to include, with coordinates in the CRS specified in the `center-crs` parameter value or in https://www.opengis.net/def/crs/OGC/1.3/CRS84 if the `center-crs` parameter is missing. 16 | part:: If the `center` parameter is used together with the `bbox` and/or with a `subset` parameter including any of the dimensions corresponding to those of the map bounding box, the server SHALL return a 4xx client error. 17 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/spatial-subsetting/REQ_map-success.adoc: -------------------------------------------------------------------------------- 1 | [[req_spatial-subsetting_map-success]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/spatial-subsetting/map-success* 6 | ^|A |The content of the response SHALL represent elements inside or intersecting with the spatial extent of the geographical area of the map identified with the subsetting coordinates. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/spatial-subsetting/map-success 14 | part:: The content of the response SHALL represent elements inside or intersecting with the spatial extent of the geographical area of the map identified with the subsetting coordinates. 15 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/spatial-subsetting/REQ_subset-response.adoc: -------------------------------------------------------------------------------- 1 | [[req_spatial-subsetting_subset-response]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/spatial-subsetting/subset-response 7 | part:: Only the part of the resource that falls within the bounds of the subset interval and/or corresponds to the single point value SHALL be returned. 8 | ==== 9 | -------------------------------------------------------------------------------- /core/standard/requirements/spatial-subsetting/REQ_subsetting-width-height-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_spatial-subsetting_width-height-definition]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/spatial-subsetting/width-height* 6 | ^|A |When the `center` parameter and/or the `scale-denominator` parameter is used, or if the _scaling_ conformance class is not supported, a `width` and `height` parameter specifying the subset of the map to return around the specified or default center of the map SHALL be supported. 7 | ^|B |The scale of the map SHALL be considered whether returning the map at a native scale or resampled 8 | (e.g., using the _scaling_ conformance class `scale-denominator` parameter), as well as the display resolution 9 | (either the default 0.28 mm/pixel, or the one specified by the `mm-per-pixel` parameter of the _display resolution_ conformance class). 10 | |=== 11 | //// 12 | 13 | [requirement] 14 | ==== 15 | [%metadata] 16 | identifier:: /req/spatial-subsetting/width-height 17 | part:: When the `center` parameter and/or the `scale-denominator` parameter is used, or if the _scaling_ conformance class is not supported, a `width` and `height` parameter specifying the subset of the map to return around the specified or default center of the map SHALL be supported. 18 | part:: The scale of the map SHALL be considered whether returning the map at a native scale or resampled (e.g., using the _scaling_ conformance class `scale-denominator` parameter), as well as the display resolution (either the default 0.28 mm/pixel, or the one specified by the `mm-per-pixel` parameter of the _display resolution_ conformance class). 19 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/styled-map/REQ_desc-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_styled-map_desc-links]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/styled-map/desc-links 7 | part:: If the deployed API endpoint has a mechanism to expose links associated with styled geospatial resources 8 | (e.g., the OGC API - Styles list of styles at `/styles` for a dataset or at `/collections/{collectionId}/styles` for a collection), 9 | those styled resources SHALL include a link with link relation `https://www.opengis.net/def/rel/ogc/1.0/map` (or `[ogc-rel:map]`) and the href pointing to the map associated with that styled resource. 10 | ==== 11 | -------------------------------------------------------------------------------- /core/standard/requirements/styled-map/REQ_operation.adoc: -------------------------------------------------------------------------------- 1 | [[req_styled-map_operation]] 2 | 3 | [requirement] 4 | ==== 5 | [%metadata] 6 | identifier:: /req/styled-map/map-operation 7 | part:: Every resource for which a styled map is available SHALL support an HTTP GET operation to a `.../styles/{styleId}/map` URL to retrieve a map for a particular style 8 | (e.g., `/collections/{collectionId}/styles/{styleId}` for a styled collection map or `/styles/{styleId}/map` for a styled dataset map). 9 | ==== 10 | -------------------------------------------------------------------------------- /core/standard/requirements/tilesets/REQ_desc-links.adoc: -------------------------------------------------------------------------------- 1 | [[req_tilesets_desc-links]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/tilesets/desc-links* 6 | ^|A |The geospatial data resource (e.g., the collection or landing page description's `links` property) SHALL include a link with the href pointing to a list of tilesets provided of this geospatial data resource using rel: `https://www.opengis.net/def/rel/ogc/1.0/tilesets-map`. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/tilesets/desc-links 14 | part:: The geospatial data resource (e.g., the collection or landing page description's `links` property) SHALL include a link with the href pointing to a list of tilesets provided from this geospatial data resource using rel: `https://www.opengis.net/def/rel/ogc/1.0/tilesets-map`. 15 | ==== -------------------------------------------------------------------------------- /core/standard/requirements/tilesets/REQ_tiles-parameters.adoc: -------------------------------------------------------------------------------- 1 | [[req_tilesets_tiles-parameters]] 2 | //// 3 | [width="90%",cols="2,6a"] 4 | |=== 5 | ^|*Requirement {counter:req-id}* |*/req/tilesets/tiles-parameters* 6 | ^|A |Implementations of the Maps API SHALL support parameters specified in the _background_, _display resolution_, _spatial subsetting_ (only for `subset` and `subset-crs` using a vertical dimension, if available), _general subsetting_, and _scaling_ requirements classes, for map tiles endpoint if the implementation declares conformance to the associated conformance classes. 7 | |=== 8 | //// 9 | 10 | [requirement] 11 | ==== 12 | [%metadata] 13 | identifier:: /req/tilesets/tiles-parameters 14 | part:: Implementations of the Maps API SHALL support parameters specified in the _background_, _display resolution_, _spatial subsetting_ (only for `subset` and `subset-crs` using a vertical dimension, if available), _general subsetting_, and _scaling_ requirements classes, for map tiles endpoint if the implementation declares conformance to the associated conformance classes. 15 | ==== -------------------------------------------------------------------------------- /core/standard/resources/bibtex-file.bib: -------------------------------------------------------------------------------- 1 | @article{VanZyl2009, 2 | abstract = {Global Earth Observing System of Systems (GEOSS) presents a great challenge of System of Systems integration across organisational and political boundaries. One existing paradigm that can address the scale of the challenge is that of the Sensor Web. In this paradigm, the internet is evolving into an active, macro sensing instrument, capable of drawing sensory data from around the globe to the fingertips of individuals. The Sensor Web will support scientific research and facilitate transparent political decision making. This article presents some of the technologies explored and activities engaged in by the GEOSS Sensor Web community, towards achieving GEOSS goals. Keywords:}, 3 | author = {van Zyl, Terence and Simonis, Ingo and McFerren, Graeme}, 4 | doi = {10.1080/17538940802439549}, 5 | file = {:Users/isi/Library/Application Support/Mendeley Desktop/Downloaded/van Zyl, Simonis, McFerren - 2009 - The Sensor Web systems of sensor systems.pdf:pdf}, 6 | isbn = {1753894080243}, 7 | issn = {1753-8947}, 8 | journal = {International Journal of Digital Earth}, 9 | keywords = {Sensor Web,data acquisition,digital earth architecture,earth observation,systems of systems}, 10 | month = {mar}, 11 | number = {1}, 12 | pages = {16--30}, 13 | publisher = {Taylor {\&} Francis}, 14 | title = {{The Sensor Web: Systems of Sensor Systems}}, 15 | url = {http://www.tandfonline.com/doi/abs/10.1080/17538940802439549}, 16 | volume = {2}, 17 | year = {2009} 18 | } 19 | -------------------------------------------------------------------------------- /core/standard/resources/fonts/Palatino-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/Palatino-Bold.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/Palatino-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/Palatino-BoldItalic.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/Palatino-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/Palatino-Italic.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/Palatino-Roman.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/Palatino-Roman.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/SourceSansPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/SourceSansPro-Bold.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/SourceSansPro-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/SourceSansPro-BoldItalic.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/SourceSansPro-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/SourceSansPro-Italic.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/SourceSansPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/SourceSansPro-Regular.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/mplus1mn-bold-ascii.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/mplus1mn-bold-ascii.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/mplus1mn-bold_italic-ascii.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/mplus1mn-bold_italic-ascii.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/mplus1mn-italic-ascii.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/mplus1mn-italic-ascii.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/mplus1mn-regular-ascii-conums.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/mplus1mn-regular-ascii-conums.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/mplus1p-regular-fallback.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/mplus1p-regular-fallback.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/notoserif-bold-subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/notoserif-bold-subset.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/notoserif-bold_italic-subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/notoserif-bold_italic-subset.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/notoserif-italic-subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/notoserif-italic-subset.ttf -------------------------------------------------------------------------------- /core/standard/resources/fonts/notoserif-regular-subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/e39bdfeb0fdc10a74d2b5c41514babf7c35f9afe/core/standard/resources/fonts/notoserif-regular-subset.ttf -------------------------------------------------------------------------------- /extensions/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the extension to the core. 2 | 3 | For some time, the bbox capacity (scaling) in maps was considered as an extension but it was finally moved to the core (part 1) 4 | 5 | Current plans are that the GetFeatureInfo will not be included in the core. While there are some opinions that the GetFeatureInfo functionality could be better implemented by the Features of Coverages API, there are still some users that want the functionality as it is today. One use case is a API that does not allow download capabilities but still wants to allow for clicking on maps. This possible extension is not defined yet but could be considered (https://github.com/opengeospatial/ogcapi-maps/issues/81) 6 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/recommendations/cartographic-layout/PER_carto-layout-crs-curie.adoc: -------------------------------------------------------------------------------- 1 | [[per_cartographic-layout_crs-curie]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Permission {counter:per-id}* |*/per/cartographic-layout/crs-curie* 5 | ^|A |Un-safe CURIE without square brackets MAY be supported. 6 | |=== 7 | 8 | NOTE: This makes the notation compatible with WMS. -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_attribution-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_attribution-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/attribution-definition* 5 | ^|A |The map operation SHALL support an optional parameter `map-attribution` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: map-attribution 9 | in: query 10 | required: false 11 | description: Add a attribution into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `map-attribution` or the value `none` SHALL be interpreted as "no attribution in the map". Other values SHALL be interpreted as the position where the attribution should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_compass-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_compass-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/compass-definition* 5 | ^|A |The map operation SHALL support an optional parameter `map-compass` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: map-compass 9 | in: query 10 | required: false 11 | description: Add a compass into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `map-compass` or the value `none` SHALL be interpreted as "no compass in the map". Other values SHALL be interpreted as the position where the compass should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_grid-crs-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_crs-grid-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/grid-crs-definition* 5 | ^|A |The map operation SHALL support an optional parameter `grid-crss` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: grid-crss 9 | in: query 10 | required: false 11 | description: Add one or more grid crss or graticules into the map 12 | style: form 13 | explode: false 14 | schema: 15 | type: array 16 | items: 17 | type: string 18 | ---- 19 | ^|B |Each name in the comma separated list in the value of the `grid-crss` SHALL be interpreted as a CRS. For each CRS in the list, if the CRS coordinates are lat/long the server shall interpret the request for a graticule and otherwise the server shall interpret the request of a CRS grid. 20 | ^|B |The implementation SHALL support any of the CRSs listed in the collection (or collections) description. If the list of supported CRS is not present, only http://www.opengis.net/def/crs/OGC/1.3/CRS84 SHALL be supported. 21 | ^|C |The implementation SHALL support CRS expressed as URIs or as safe CURIEs. 22 | ^|D |The absence of the parameter `grid-crss` SHALL be interpreted as "neither CRS grid nor graticule in the map". 23 | |=== 24 | 25 | NOTE: A CURIE {authority}[-{objectType}]:{id} would map to the following OGC URI: http://www.opengis.net/def/{objectType}/{authority}/0/{id}. If -{objectType} is missing, the default object type is crs. -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_legend-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_legend-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layouts/legend-definition* 5 | ^|A |The map operation SHALL support an optional parameter `map-legend` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: map-legend 9 | in: query 10 | required: false 11 | description: Add a legend into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `map-legend` or the value `none` SHALL be interpreted as "no legend in the map". Other values SHALL be interpreted as the position where the legend should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_map-title-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_map-title-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/map-title-definition* 5 | ^|A |The map operation SHALL support an optional parameter `map-title` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: map-title 9 | in: query 10 | required: false 11 | description: a title into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `map-title` or the value `none` SHALL be interpreted as "no title in the map". Other values SHALL be interpreted as the position where the title should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_scale-bar-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_scale-bar-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/scale-bar-definition* 5 | ^|A |The map operation SHALL support an optional parameter `scale-bar` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: scale-bar 9 | in: query 10 | required: false 11 | description: Add a scale bar into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `scale-bar` or the value `none` SHALL be interpreted as "no scale bar in the map". Other values SHALL be interpreted as the position where the scale bar should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/cartographic-layout/REQ_situation-map-definition.adoc: -------------------------------------------------------------------------------- 1 | [[req_decorations_situation-map-definition]] 2 | [width="90%",cols="2,6a"] 3 | |=== 4 | ^|*Requirement {counter:req-id}* |*/req/cartographic-layout/situation-map-definition* 5 | ^|A |The map operation SHALL support an optional parameter `situation-map` with the characteristics defined in the OpenAPI Specification 3.0 fragment 6 | [source,YAML] 7 | ---- 8 | name: situation-map 9 | in: query 10 | required: false 11 | description: Add a situation-map into the map 12 | style: form 13 | schema: 14 | type: string 15 | enum: 16 | - none 17 | - topLeft 18 | - topCenter 19 | - topRight 20 | - middleLeft 21 | - middleRight 22 | - bottomLeft 23 | - bottomCenter 24 | - bottomRight 25 | default: none 26 | ---- 27 | ^|B |The absence of the parameter `situation-map` or the value `none` SHALL be interpreted as "no situation map is required in the map". Other values SHALL be interpreted as the position where the situation map should appear 28 | |=== 29 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-attribution.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-attribution]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Attribution* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-attribution 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-compass.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-compass]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Compass* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-compass 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-grid-crs.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-grid-crss]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Grid CRSs* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-grid-crss 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-legend.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-legend]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Legend* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-legend 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-scale-bar.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-scale-bar]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Scale Bar* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-scale-bar 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-situation-map.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-situation-map]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Situation Map* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-situation-map 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/cartographicLayout/requirements/requirements_class_cartographic-layout-title.adoc: -------------------------------------------------------------------------------- 1 | [[rc_maps-cartographic-layout-title]] 2 | [cols="1,4",width="90%"] 3 | |=== 4 | 2+|*Requirements Class Cartographic Layout Title* 5 | 2+|http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-title 6 | |Target type |Web API 7 | |Dependency |http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core 8 | |=== 9 | -------------------------------------------------------------------------------- /extensions/clause_2_conformance.adoc: -------------------------------------------------------------------------------- 1 | 2 | *<>* (http://www.opengis.net/spec/ogcapi-maps-2/1.0/req/cartographic-layout-title, http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-legend, http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-scale-bar, http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-compass, http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-situation-map, http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-attribution, and http://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cartographic-layout-grid-crss) 3 | 4 | The cartographic layout _core_ conformance classes allow adding a title, a legend, a scale bar, a compass, a situation map, an attribution text, and lat/long graticules and a CRS grids directly on top of a map. 5 | 6 | [#table_resource_cartographic-layout,reftext='{table-caption} {counter:table-num}'] 7 | .Overview of resource and common direct links that corresponds to the cartographic layout 8 | [cols="33,66",options="header"] 9 | |=== 10 | |Resource name |Example of possible paths 11 | |Map |`/map?map-title=topCenter&map-legend=middleRight&scale-bar=bottomCenter&map-compass=topLeft&situation-map=bottomLeft&grid-crss=CRS:84,EPSG:32831&map-attribution=bottomRight` 12 | |=== 13 | -------------------------------------------------------------------------------- /openapi/README.md: -------------------------------------------------------------------------------- 1 | # OpenAPI definitions 2 | 3 | This example API definition can be used to provide an OpenAPI 3.0 definition for an implementation of _OGC API - Maps_. 4 | The API definition can be visualized with [SwaggerUI](https://petstore.swagger.io/?url=https://raw.githubusercontent.com/opengeospatial/ogcapi-maps/master/openapi/ogcapi-maps-1.bundled.json). 5 | 6 | The lists of collections and tile matrix sets in the `/api` sub-directory should be tailored to the implementation and deployment, or those `/api/*` paths can be implemented dynamically by the server instead. 7 | 8 | The list of supported paths should be adjusted in `ogcapi-maps-1.yaml`. 9 | 10 | # Building the OpenAPI bundle 11 | 12 | The `ogcapi-maps-1.bundled.json` file is a standalone/portable OpenAPI document which includes all dependencies included from the components sub-directories, and is built automatically via GitHub Actions. To test/build the bundle locally: 13 | 14 | ```bash 15 | # install Swagger CLI via npm 16 | npm install -g @apidevtools/swagger-cli 17 | 18 | # generate OpenAPI bundle 19 | cd standard/openapi 20 | swagger-cli bundle -o ogcapi-maps-1.bundled.json ogcapi-maps-1.yaml 21 | ``` 22 | 23 | See also [Swagger CLI](https://apitools.dev/swagger-cli/) and its [GitHub repository](https://github.com/APIDevTools/swagger-cli). 24 | -------------------------------------------------------------------------------- /openapi/api/README.md: -------------------------------------------------------------------------------- 1 | These stand-in API resources are intended to dynamically enumerate specific types of implementation/deployment-dependent available resources in responses to `/api/*`. 2 | 3 | Alternatively, those resources could be directly enumerated in `schemas/dynamic/*` 4 | -------------------------------------------------------------------------------- /openapi/api/all-collections.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "string", 3 | "enum" : [ 4 | "blueMarble", 5 | "NaturalEarth:raster:HYP_HR_SR_OB_DR", 6 | "NaturalEarth:cultural:ne_10m_admin_0_countries", 7 | "NaturalEarth:physical:bathymetry", 8 | "SRTM_ViewFinderPanorama", 9 | "HRDEM-Ottawa", 10 | "HRDEM-RedRiver" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /openapi/api/styles.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "string", 3 | "enum" : [ 4 | "default" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /openapi/api/tileMatrixSets.json: -------------------------------------------------------------------------------- 1 | { 2 | "type" : "string", 3 | "enum" : [ 4 | "WebMercatorQuad", 5 | "WorldCRS84Quad", 6 | "GNOSISGlobalGrid", 7 | "WorldMercatorWGS84Quad" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/bbox.yaml: -------------------------------------------------------------------------------- 1 | name: bbox 2 | in: query 3 | description: >- 4 | Only resources that have a geometry that intersects the bounding box are selected. 5 | The bounding box is provided as four or six numbers, depending on whether the 6 | coordinate reference system includes a vertical axis (elevation or depth): 7 | 8 | * Lower left corner, coordinate axis 1 9 | * Lower left corner, coordinate axis 2 10 | * Minimum value, coordinate axis 3 (optional) 11 | * Upper right corner, coordinate axis 1 12 | * Upper right corner, coordinate axis 2 13 | * Maximum value, coordinate axis 3 (optional) 14 | 15 | If the value consists of four numbers, the coordinate reference system is 16 | WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) 17 | unless a different coordinate reference system is specified in the parameter `bbox-crs`. 18 | 19 | If the value consists of six numbers, the coordinate reference system is WGS 84 20 | longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h) 21 | unless a different coordinate reference system is specified in a parameter `bbox-crs`. 22 | 23 | For WGS84 longitude/latitude the values are in most cases the sequence of 24 | minimum longitude, minimum latitude, maximum longitude and maximum latitude. 25 | However, in cases where the box spans the antimeridian the first value 26 | (west-most box edge) is larger than the third value (east-most box edge). 27 | 28 | If the vertical axis is included, the third and the sixth number are the 29 | bottom and the top of the 3-dimensional bounding box. 30 | 31 | If a resource has multiple spatial geometry properties, it is the decision of the server 32 | whether only a single spatial geometry property is used to determine 33 | the extent or all relevant geometries. 34 | required: false 35 | schema: 36 | type: array 37 | oneOf: 38 | - minItems: 4 39 | maxItems: 4 40 | - minItems: 6 41 | maxItems: 6 42 | items: 43 | type: number 44 | style: form 45 | explode: false 46 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/collectionId-all.yaml: -------------------------------------------------------------------------------- 1 | name: collectionId 2 | in: path 3 | description: Local identifier of a collection 4 | required: true 5 | schema: 6 | $ref: '../../schemas/dynamic/all-collections.yaml' 7 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/datetime.yaml: -------------------------------------------------------------------------------- 1 | name: datetime 2 | in: query 3 | description: >- 4 | Either a date-time or an interval. Date and time expressions 5 | adhere to RFC 3339, section 5.6. Intervals may be bounded or half-bounded (double-dots at start or end). 6 | Server implementations may or may not support times expressed using time offsets from UTC, but need to support 7 | UTC time with the notation ending with a Z. 8 | 9 | Examples: 10 | 11 | * A date-time: "2018-02-12T23:20:50Z" 12 | * A bounded interval: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z" 13 | * Half-bounded intervals: "2018-02-12T00:00:00Z/.." or "../2018-03-18T12:31:12Z" 14 | 15 | Only resources that have a temporal property that intersects the value of 16 | `datetime` are selected. 17 | 18 | If a feature has multiple temporal properties, it is the decision of the 19 | server whether only a single temporal property is used to determine 20 | the extent or all relevant temporal properties. 21 | required: false 22 | schema: 23 | type: string 24 | style: form 25 | explode: false 26 | -------------------------------------------------------------------------------- /openapi/parameters/common-geodata/limit-collections.yaml: -------------------------------------------------------------------------------- 1 | name: limit 2 | in: query 3 | description: >- 4 | The optional limit parameter limits the number of collections that are 5 | presented in the response document. 6 | 7 | Only items are counted that are on the first level of the collection in 8 | the response document. Nested objects contained within the explicitly 9 | requested items shall not be counted. 10 | 11 | * Minimum = 1 12 | * Maximum = 10000 13 | * Default = 10 14 | required: false 15 | schema: 16 | type: integer 17 | minimum: 1 18 | maximum: 10000 19 | default: 10 20 | style: form 21 | explode: false 22 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/bbox-crs.yaml: -------------------------------------------------------------------------------- 1 | name: bbox-crs 2 | in: query 3 | description: crs for the specified bbox 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/bgcolor.yaml: -------------------------------------------------------------------------------- 1 | name: bgcolor 2 | in: query 3 | description: Web color name or hexadecimal 0x[AA]RRGGBB color value for the background color (default to 0x9C9C9C gray). If alpha is not specified, full opacity is assumed. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: string 9 | default: '0xFFFFFF' 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/center-crs.yaml: -------------------------------------------------------------------------------- 1 | name: center-crs 2 | in: query 3 | description: CRS for the specified center point 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/center.yaml: -------------------------------------------------------------------------------- 1 | name: center 2 | in: query 3 | description: Coordinates of center point for subsetting, in conjunction with the `width` and/or `height` parameters, taking into consideration the scale and display resolution of the map. The center coordinates are comma-separated and interpreted as [ogc:CRS84], unless the `center-crs` parameter specifies otherwise. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: array 9 | minItems: 2 10 | maxItems: 2 11 | items: 12 | type: number 13 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/collections.yaml: -------------------------------------------------------------------------------- 1 | name: collections 2 | in: query 3 | style: form 4 | description: The collections that should be included in the response. The parameter value is a comma-separated list of collection identifiers. If the parameters is missing, some or all collections will be included. The collection will be rendered in the order specified, with the last one showing on top, unless the priority is overridden by styling rules. 5 | required: false 6 | explode: false 7 | schema: 8 | type: array 9 | items: 10 | $ref: '../../schemas/dynamic/all-collections.yaml' 11 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/crs-datum.yaml: -------------------------------------------------------------------------------- 1 | name: crs-datum 2 | in: query 3 | description: Datum for a custom projection CRS, implying a particular ellipsoid. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/crs-proj-center.yaml: -------------------------------------------------------------------------------- 1 | name: crs-proj-center 2 | in: query 3 | description: >- 4 | Projection center for a custom projection CRS corresponding to specific projection operation method parameters for latitude and longitude. 5 | required: false 6 | style: form 7 | explode: false 8 | schema: 9 | type: string 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/crs-proj-method.yaml: -------------------------------------------------------------------------------- 1 | name: crs-proj-method 2 | in: query 3 | description: Projection operation method for a custom projection CRS. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/crs-proj-params.yaml: -------------------------------------------------------------------------------- 1 | name: crs-proj-params 2 | in: query 3 | description: Operation method parameters for a custom projection CRS. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/crs.yaml: -------------------------------------------------------------------------------- 1 | name: crs 2 | in: query 3 | description: reproject the output to the given crs 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/height.yaml: -------------------------------------------------------------------------------- 1 | name: height 2 | in: query 3 | description: >- 4 | Height of the map in pixels. If omitted and `width` is specified, defaults to the height maintaining a 1:1 aspect ratio. If both `width` and `height` are omitted, the server will select default dimensions. 5 | When used together with the `center` and/or `scale-denominator` parameter, `height` takes on a subsetting role rather than scaling (resampling), defining the vertical portion of the map to subset based on the scale (native scale, or specified by `scale-denominator`) and display resolution (0.28 mm/pixel, or specified by `mm-per-pixel`). 6 | required: false 7 | style: form 8 | explode: false 9 | schema: 10 | type: integer 11 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/mm-per-pixel.yaml: -------------------------------------------------------------------------------- 1 | name: mm-per-pixel 2 | in: query 3 | description: >- 4 | Display resolution of the target rendering device in millimeters per pixel. This parameter controls the relationship between the dimensions of the resulting map in pixels and the scale of the map. 5 | The display resolution is taken into account for applying symbology rules, for the `scale-denominator` parameter, and for the spatial subsetting using a `center`, `width` and `height` parameters. 6 | required: false 7 | style: form 8 | explode: false 9 | schema: 10 | type: number 11 | default: 0.28 12 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/orientation.yaml: -------------------------------------------------------------------------------- 1 | name: orientation 2 | in: query 3 | description: Orientation in degrees by which the content of the map is to be rotated around the center of the subset area as pivot point in a counter-clockwise direction, resulting in the viewing perspective being rotated by the same orientation in a clockwise direction. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: number 9 | default: 0 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/scale-denominator.yaml: -------------------------------------------------------------------------------- 1 | name: scale-denominator 2 | in: query 3 | description: Scale denominator of the map specifying to how many units in the real world one of the same unit on the map corresponds, as printed or displayed, taking into account the display resolution (`mm-per-pixel` or 0.28 mm/pixel default). This parameter can only be used together with the `width` or `height` parameters (which provide an alternative mechanism to control the scale) if the implementation also supports subsetting, in which case those `width` and `height` parameters then control the subset of the map returned rather than the scale. If `scale-denominator` is omitted, the scale is implied from the dimensions of the returned map compared to its spatial subset area. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: number 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/subset-crs.yaml: -------------------------------------------------------------------------------- 1 | name: subset-crs 2 | in: query 3 | description: crs for the specified subset 4 | required: false 5 | style: form 6 | explode: true 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/subset.yaml: -------------------------------------------------------------------------------- 1 | name: subset 2 | in: query 3 | description: | 4 | Retrieve only part of the data by slicing or trimming along one or more axis 5 | For trimming: {axisAbbrev}({low}:{high}) (preserves dimensionality) 6 | For slicing: {axisAbbrev}({value}) (reduces dimensionality) 7 | An asterisk (`*`) can be used instead of {low} or {high} to indicate the minimum/maximum value. 8 | For a temporal dimension, a single asterisk can be used to indicate the high value. 9 | Support for `*` is required for time, but optional for spatial and other dimensions. 10 | style: form 11 | explode: false 12 | required: false 13 | schema: 14 | type: array 15 | items: 16 | type: string 17 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/transparent.yaml: -------------------------------------------------------------------------------- 1 | name: transparent 2 | in: query 3 | description: Background transparency of map (defaults to `true` without a `bgcolor` specified, but to `false` when a `bgcolor` is used). 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: boolean 9 | default: true 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/void-color.yaml: -------------------------------------------------------------------------------- 1 | name: void-color 2 | in: query 3 | description: Web color name or hexadecimal 0x[AA]RRGGBB color value for the void color for parts of the map outside of the valid area of the projection / CRS. If not specified, this defaults to the same as `bgcolor`. 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: string 9 | default: '0xFFFFFF' 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/void-transparent.yaml: -------------------------------------------------------------------------------- 1 | name: void-transparent 2 | in: query 3 | description: Background transparency for parts of the map outside of the valid areas of the CRS / projection (defaults to the same as `transparent` if not specified). 4 | required: false 5 | style: form 6 | explode: false 7 | schema: 8 | type: boolean 9 | default: true 10 | -------------------------------------------------------------------------------- /openapi/parameters/maps-core/width.yaml: -------------------------------------------------------------------------------- 1 | name: width 2 | in: query 3 | description: >- 4 | Width of the map in pixels. If omitted and `height` is specified, defaults to the width maintaining a 1:1 aspect ratio. If both `width` and `height` are omitted, the server will select default dimensions. 5 | When used together with the `center` and/or `scale-denominator` parameter, `width` takes on a subsetting role rather than scaling (resampling), defining the horizontal portion of the map to subset based on the scale (native scale, or specified by `scale-denominator`) and display resolution (0.28 mm/pixel, or specified by `mm-per-pixel`). 6 | required: false 7 | style: form 8 | explode: false 9 | schema: 10 | type: integer 11 | -------------------------------------------------------------------------------- /openapi/parameters/styles-core/styleId-collection.yaml: -------------------------------------------------------------------------------- 1 | name: styleId 2 | in: path 3 | description: An identifier representing a specific style. 4 | required: true 5 | allowEmptyValue: false 6 | schema: 7 | # There is currently no way in OpenAPI to list styles specific to a particular collection. 8 | # If templated $ref were supported, we could do e.g. $templatedRef: ../../../api/styles/{collectionId} 9 | # (see https://github.com/json-schema-org/json-schema-vocabularies/issues/36 and 10 | # https://github.com/OAI/OpenAPI-Specification/issues/2453). 11 | type: string 12 | -------------------------------------------------------------------------------- /openapi/parameters/styles-core/styleId.yaml: -------------------------------------------------------------------------------- 1 | name: styleId 2 | in: path 3 | description: An identifier representing a specific style. 4 | required: true 5 | allowEmptyValue: false 6 | schema: 7 | $ref: '../../schemas/dynamic/styles.yaml' 8 | -------------------------------------------------------------------------------- /openapi/parameters/tiles-core/tileCol.yaml: -------------------------------------------------------------------------------- 1 | name: tileCol 2 | in: path 3 | description: Column index of the tile on the selected TileMatrix. It cannot exceed the MatrixHeight-1 for the selected TileMatrix. For example, Ireland is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15. 4 | required: true 5 | schema: 6 | minimum: 0 7 | type: integer 8 | example: 15 9 | -------------------------------------------------------------------------------- /openapi/parameters/tiles-core/tileMatrix.yaml: -------------------------------------------------------------------------------- 1 | name: tileMatrix 2 | in: path 3 | description: |- 4 | Identifier selecting one of the scales defined in the TileMatrixSet and representing the scaleDenominator the tile. For example, 5 | Ireland is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15. 6 | required: true 7 | schema: 8 | type: string 9 | example: '5' 10 | -------------------------------------------------------------------------------- /openapi/parameters/tiles-core/tileRow.yaml: -------------------------------------------------------------------------------- 1 | name: tileRow 2 | in: path 3 | description: Row index of the tile on the selected TileMatrix. It cannot exceed the MatrixWidth-1 for the selected TileMatrix. For example, Ireland is fully within the Tile at WebMercatorQuad tileMatrix=5, tileRow=10 and tileCol=15. 4 | required: true 5 | schema: 6 | minimum: 0 7 | type: integer 8 | example: 10 9 | -------------------------------------------------------------------------------- /openapi/parameters/unspecified/f-map.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the map response (e.g. png). Accepted values are 'png', 'jpg' or 'tiff' (GeoTIFF). 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - png 9 | - jpg 10 | - tiff 11 | style: form 12 | explode: false 13 | -------------------------------------------------------------------------------- /openapi/parameters/unspecified/f-mapTile.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the map tile response (e.g. png). Accepted values are 'png', 'jpg' or 'tiff' (GeoTIFF). 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - png 9 | - jpg 10 | - tiff 11 | style: form 12 | explode: false 13 | -------------------------------------------------------------------------------- /openapi/parameters/unspecified/f-metadata.yaml: -------------------------------------------------------------------------------- 1 | name: f 2 | in: query 3 | description: The format of the response. If no value is provided, the accept header is used to determine the format. Accepted values are 'json' or 'html'. 4 | required: false 5 | schema: 6 | type: string 7 | enum: 8 | - json 9 | - html 10 | style: form 11 | explode: false 12 | -------------------------------------------------------------------------------- /openapi/parameters/unspecified/tileMatrixSetId.yaml: -------------------------------------------------------------------------------- 1 | name: tileMatrixSetId 2 | in: path 3 | description: Identifier for a supported TileMatrixSet 4 | required: true 5 | allowEmptyValue: false 6 | schema: 7 | $ref: '../../schemas/dynamic/tileMatrixSets.yaml' 8 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pAPI.yaml: -------------------------------------------------------------------------------- 1 | # API definition 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPI 6 | summary: Retrieve this API definition. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rAPI.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pConformance.yaml: -------------------------------------------------------------------------------- 1 | # Conformance 2 | get: 3 | tags: 4 | - Conformance 5 | operationId: getConformance 6 | summary: Retrieve the set of OGC API conformance classes that are supported by this service. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rConformance.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-core/pLandingPage.yaml: -------------------------------------------------------------------------------- 1 | # Landing Page 2 | get: 3 | tags: 4 | - Landing Page 5 | operationId: getLandingPage 6 | summary: Retrieve the OGC API landing page for this service. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-core/rLandingPage.yaml' 12 | '406': 13 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 14 | '500': 15 | $ref: '../../responses/common-core/rServerError.yaml' 16 | -------------------------------------------------------------------------------- /openapi/paths/common-geodata/pCollection.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Data Collections 4 | operationId: getCollection 5 | summary: Retrieve the description of a collection available from this service. 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/common-geodata/rCollection.yaml' 12 | -------------------------------------------------------------------------------- /openapi/paths/common-geodata/pCollectionsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Data Collections 4 | operationId: getCollectionsList 5 | summary: Retrieve the list of geospatial data collections available from this service. 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/datetime.yaml' 8 | - $ref: '../../parameters/common-geodata/bbox.yaml' 9 | - $ref: '../../parameters/common-geodata/limit-collections.yaml' 10 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 11 | responses: 12 | '200': 13 | $ref: '../../responses/common-geodata/rCollectionsList.yaml' 14 | -------------------------------------------------------------------------------- /openapi/paths/dynamic/pAllCollections.yaml: -------------------------------------------------------------------------------- 1 | # API Collections 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPICollections 6 | summary: Retrieve the list of collections available from this API implementation & deployment. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/dynamic/rEnumeration.yaml' 12 | '404': 13 | $ref: '../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/dynamic/pStyles.yaml: -------------------------------------------------------------------------------- 1 | # API Styles 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPIStyles 6 | summary: Retrieve the list of dataset styles available from this API implementation & deployment. 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/dynamic/rEnumeration.yaml' 12 | '404': 13 | $ref: '../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/dynamic/pTileMatrixSets.yaml: -------------------------------------------------------------------------------- 1 | # API TileMatrixSets 2 | get: 3 | tags: 4 | - API 5 | operationId: getAPITileMatrixSets 6 | summary: JSON enumeration of the shared TileMatrixSets available from this API implementation & deployment (for inclusion in the API definition). 7 | parameters: 8 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../responses/dynamic/rEnumeration.yaml' 12 | '404': 13 | $ref: '../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/maps-core/pCollectionMap.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Maps 4 | summary: Retrieve a map for the specified collection 5 | operationId: .collection.getMap 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/bbox.yaml' 8 | - $ref: '../../parameters/common-geodata/datetime.yaml' 9 | - $ref: '../../parameters/common-geodata/collectionId-all.yaml' 10 | - $ref: '../../parameters/maps-core/collections.yaml' 11 | - $ref: '../../parameters/maps-core/subset.yaml' 12 | - $ref: '../../parameters/maps-core/crs.yaml' 13 | - $ref: '../../parameters/maps-core/bbox-crs.yaml' 14 | - $ref: '../../parameters/maps-core/subset-crs.yaml' 15 | - $ref: '../../parameters/maps-core/bgcolor.yaml' 16 | - $ref: '../../parameters/maps-core/transparent.yaml' 17 | - $ref: '../../parameters/maps-core/void-color.yaml' 18 | - $ref: '../../parameters/maps-core/void-transparent.yaml' 19 | - $ref: '../../parameters/maps-core/width.yaml' 20 | - $ref: '../../parameters/maps-core/height.yaml' 21 | - $ref: '../../parameters/maps-core/center.yaml' 22 | - $ref: '../../parameters/maps-core/center-crs.yaml' 23 | - $ref: '../../parameters/maps-core/scale-denominator.yaml' 24 | - $ref: '../../parameters/maps-core/mm-per-pixel.yaml' 25 | - $ref: '../../parameters/maps-core/orientation.yaml' 26 | - $ref: '../../parameters/maps-core/crs-proj-method.yaml' 27 | - $ref: '../../parameters/maps-core/crs-proj-center.yaml' 28 | - $ref: '../../parameters/maps-core/crs-proj-params.yaml' 29 | - $ref: '../../parameters/maps-core/crs-datum.yaml' 30 | - $ref: '../../parameters/unspecified/f-map.yaml' 31 | responses: 32 | '200': 33 | $ref: '../../responses/maps-core/rMap.yaml' 34 | '204': 35 | $ref: '../../responses/maps-core/rEmptyMap.yaml' 36 | '404': 37 | $ref: '../../responses/common-core/rNotFound.yaml' 38 | '406': 39 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 40 | '500': 41 | $ref: '../../responses/common-core/rServerError.yaml' 42 | -------------------------------------------------------------------------------- /openapi/paths/maps-core/pDataSetMap.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Maps 4 | summary: Retrieve a default map of the whole dataset 5 | operationId: .dataset.getMap 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/bbox.yaml' 8 | - $ref: '../../parameters/common-geodata/datetime.yaml' 9 | - $ref: '../../parameters/maps-core/collections.yaml' 10 | - $ref: '../../parameters/maps-core/subset.yaml' 11 | - $ref: '../../parameters/maps-core/crs.yaml' 12 | - $ref: '../../parameters/maps-core/bbox-crs.yaml' 13 | - $ref: '../../parameters/maps-core/subset-crs.yaml' 14 | - $ref: '../../parameters/maps-core/bgcolor.yaml' 15 | - $ref: '../../parameters/maps-core/transparent.yaml' 16 | - $ref: '../../parameters/maps-core/void-color.yaml' 17 | - $ref: '../../parameters/maps-core/void-transparent.yaml' 18 | - $ref: '../../parameters/maps-core/width.yaml' 19 | - $ref: '../../parameters/maps-core/height.yaml' 20 | - $ref: '../../parameters/maps-core/center.yaml' 21 | - $ref: '../../parameters/maps-core/center-crs.yaml' 22 | - $ref: '../../parameters/maps-core/scale-denominator.yaml' 23 | - $ref: '../../parameters/maps-core/mm-per-pixel.yaml' 24 | - $ref: '../../parameters/maps-core/orientation.yaml' 25 | - $ref: '../../parameters/maps-core/crs-proj-method.yaml' 26 | - $ref: '../../parameters/maps-core/crs-proj-center.yaml' 27 | - $ref: '../../parameters/maps-core/crs-proj-params.yaml' 28 | - $ref: '../../parameters/maps-core/crs-datum.yaml' 29 | - $ref: '../../parameters/unspecified/f-map.yaml' 30 | responses: 31 | '200': 32 | $ref: '../../responses/maps-core/rMap.yaml' 33 | '204': 34 | $ref: '../../responses/maps-core/rEmptyMap.yaml' 35 | '404': 36 | $ref: '../../responses/common-core/rNotFound.yaml' 37 | '406': 38 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 39 | '500': 40 | $ref: '../../responses/common-core/rServerError.yaml' 41 | -------------------------------------------------------------------------------- /openapi/paths/maps-core/pProjections.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Custom Projection CRS 4 | summary: Retrieve the list of custom CRS projection operation methods (including their associated parameters) and datums supported by this API. 5 | operationId: getCustomCRSProjections 6 | parameters: 7 | - $ref: '../../parameters/unspecified/f-metadata.yaml' 8 | responses: 9 | '200': 10 | $ref: '../../responses/maps-core/rProjections.yaml' 11 | '406': 12 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 13 | '500': 14 | $ref: '../../responses/common-core/rServerError.yaml' 15 | -------------------------------------------------------------------------------- /openapi/paths/maps-core/pStyledDataSetMap.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Maps 4 | summary: Retrieve a styled map of the whole dataset 5 | operationId: .dataset.style.getMap 6 | parameters: 7 | - $ref: '../../parameters/common-geodata/bbox.yaml' 8 | - $ref: '../../parameters/common-geodata/datetime.yaml' 9 | - $ref: '../../parameters/maps-core/collections.yaml' 10 | - $ref: '../../parameters/maps-core/subset.yaml' 11 | - $ref: '../../parameters/maps-core/crs.yaml' 12 | - $ref: '../../parameters/maps-core/bbox-crs.yaml' 13 | - $ref: '../../parameters/maps-core/subset-crs.yaml' 14 | - $ref: '../../parameters/maps-core/bgcolor.yaml' 15 | - $ref: '../../parameters/maps-core/transparent.yaml' 16 | - $ref: '../../parameters/maps-core/void-color.yaml' 17 | - $ref: '../../parameters/maps-core/void-transparent.yaml' 18 | - $ref: '../../parameters/maps-core/width.yaml' 19 | - $ref: '../../parameters/maps-core/height.yaml' 20 | - $ref: '../../parameters/maps-core/center.yaml' 21 | - $ref: '../../parameters/maps-core/center-crs.yaml' 22 | - $ref: '../../parameters/maps-core/scale-denominator.yaml' 23 | - $ref: '../../parameters/maps-core/mm-per-pixel.yaml' 24 | - $ref: '../../parameters/maps-core/orientation.yaml' 25 | - $ref: '../../parameters/maps-core/crs-proj-method.yaml' 26 | - $ref: '../../parameters/maps-core/crs-proj-center.yaml' 27 | - $ref: '../../parameters/maps-core/crs-proj-params.yaml' 28 | - $ref: '../../parameters/maps-core/crs-datum.yaml' 29 | - $ref: '../../parameters/styles-core/styleId.yaml' 30 | - $ref: '../../parameters/unspecified/f-map.yaml' 31 | responses: 32 | '200': 33 | $ref: '../../responses/maps-core/rMap.yaml' 34 | '204': 35 | $ref: '../../responses/maps-core/rEmptyMap.yaml' 36 | '404': 37 | $ref: '../../responses/common-core/rNotFound.yaml' 38 | '406': 39 | $ref: '../../responses/common-core/rNotAcceptable.yaml' 40 | '500': 41 | $ref: '../../responses/common-core/rServerError.yaml' 42 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/map-tiles/pCollectionMapTile.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a map tile from the specified collection 5 | operationId: .collection.map.getTile 6 | parameters: 7 | - $ref: '../../../../parameters/tiles-core/tileMatrix.yaml' 8 | - $ref: '../../../../parameters/tiles-core/tileRow.yaml' 9 | - $ref: '../../../../parameters/tiles-core/tileCol.yaml' 10 | - $ref: '../../../../parameters/common-geodata/datetime.yaml' 11 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 12 | - $ref: '../../../../parameters/maps-core/collections.yaml' 13 | - $ref: '../../../../parameters/maps-core/subset.yaml' 14 | - $ref: '../../../../parameters/maps-core/crs.yaml' 15 | - $ref: '../../../../parameters/maps-core/subset-crs.yaml' 16 | - $ref: '../../../../parameters/maps-core/bgcolor.yaml' 17 | - $ref: '../../../../parameters/maps-core/transparent.yaml' 18 | - $ref: '../../../../parameters/maps-core/void-color.yaml' 19 | - $ref: '../../../../parameters/maps-core/void-transparent.yaml' 20 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 21 | - $ref: '../../../../parameters/unspecified/f-mapTile.yaml' 22 | responses: 23 | '200': 24 | $ref: '../../../../responses/tiles-core/rMapTile.yaml' 25 | '204': 26 | $ref: '../../../../responses/tiles-core/rEmptyTile.yaml' 27 | '404': 28 | $ref: '../../../../responses/common-core/rNotFound.yaml' 29 | '406': 30 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 31 | '500': 32 | $ref: '../../../../responses/common-core/rServerError.yaml' 33 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/map-tiles/pCollectionMapTileSet.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a map tile set metadata for the specified collection and tiling scheme (tile matrix set) 5 | operationId: .collection.map.getTileSet 6 | parameters: 7 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../../../parameters/maps-core/collections.yaml' 9 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 10 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 11 | responses: 12 | '200': 13 | $ref: '../../../../responses/tiles-core/rTileSet.yaml' 14 | '404': 15 | $ref: '../../../../responses/common-core/rNotFound.yaml' 16 | '406': 17 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 18 | '500': 19 | $ref: '../../../../responses/common-core/rServerError.yaml' 20 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/map-tiles/pCollectionMapTileSetsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a list of all map tilesets for specified collection. 5 | operationId: .collection.map.getTileSetsList 6 | parameters: 7 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../../../responses/tiles-core/rTileSetsList.yaml' 12 | '404': 13 | $ref: '../../../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/styled-map-tiles/pStyledCollectionMapTile.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a map tile for a specified collection and style 5 | operationId: .collection.style.map.getTile 6 | parameters: 7 | - $ref: '../../../../parameters/tiles-core/tileMatrix.yaml' 8 | - $ref: '../../../../parameters/tiles-core/tileRow.yaml' 9 | - $ref: '../../../../parameters/tiles-core/tileCol.yaml' 10 | - $ref: '../../../../parameters/common-geodata/datetime.yaml' 11 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 12 | - $ref: '../../../../parameters/maps-core/collections.yaml' 13 | - $ref: '../../../../parameters/maps-core/subset.yaml' 14 | - $ref: '../../../../parameters/maps-core/crs.yaml' 15 | - $ref: '../../../../parameters/maps-core/subset-crs.yaml' 16 | - $ref: '../../../../parameters/maps-core/bgcolor.yaml' 17 | - $ref: '../../../../parameters/maps-core/transparent.yaml' 18 | - $ref: '../../../../parameters/maps-core/void-color.yaml' 19 | - $ref: '../../../../parameters/maps-core/void-transparent.yaml' 20 | - $ref: '../../../../parameters/styles-core/styleId-collection.yaml' 21 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 22 | - $ref: '../../../../parameters/unspecified/f-mapTile.yaml' 23 | responses: 24 | '200': 25 | $ref: '../../../../responses/tiles-core/rMapTile.yaml' 26 | '204': 27 | $ref: '../../../../responses/tiles-core/rEmptyTile.yaml' 28 | '404': 29 | $ref: '../../../../responses/common-core/rNotFound.yaml' 30 | '406': 31 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 32 | '500': 33 | $ref: '../../../../responses/common-core/rServerError.yaml' 34 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/styled-map-tiles/pStyledCollectionMapTileSet.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve the map tileset metadata for the specified collection, style and tiling scheme (tile matrix set). 5 | operationId: .collection.style.map.getTileSet 6 | parameters: 7 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../../../parameters/maps-core/collections.yaml' 9 | - $ref: '../../../../parameters/styles-core/styleId-collection.yaml' 10 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 11 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 12 | responses: 13 | '200': 14 | $ref: '../../../../responses/tiles-core/rTileSet.yaml' 15 | '404': 16 | $ref: '../../../../responses/common-core/rNotFound.yaml' 17 | '406': 18 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 19 | '500': 20 | $ref: '../../../../responses/common-core/rServerError.yaml' 21 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/collection-tiles/styled-map-tiles/pStyledCollectionMapTileSetsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a list of styled map tilesets for the specified collection 5 | operationId: .collection.style.map.getTileSetsList 6 | parameters: 7 | - $ref: '../../../../parameters/common-geodata/collectionId-all.yaml' 8 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 9 | - $ref: '../../../../parameters/styles-core/styleId-collection.yaml' 10 | responses: 11 | '200': 12 | $ref: '../../../../responses/tiles-core/rTileSetsList.yaml' 13 | '404': 14 | $ref: '../../../../responses/common-core/rNotFound.yaml' 15 | '406': 16 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 17 | '500': 18 | $ref: '../../../../responses/common-core/rServerError.yaml' 19 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/map-tiles/pDataSetMapTile.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a default map tile of the whole dataset 5 | operationId: .dataset.map.getTile 6 | parameters: 7 | - $ref: '../../../../parameters/tiles-core/tileMatrix.yaml' 8 | - $ref: '../../../../parameters/tiles-core/tileRow.yaml' 9 | - $ref: '../../../../parameters/tiles-core/tileCol.yaml' 10 | - $ref: '../../../../parameters/common-geodata/datetime.yaml' 11 | - $ref: '../../../../parameters/maps-core/collections.yaml' 12 | - $ref: '../../../../parameters/maps-core/subset.yaml' 13 | - $ref: '../../../../parameters/maps-core/crs.yaml' 14 | - $ref: '../../../../parameters/maps-core/subset-crs.yaml' 15 | - $ref: '../../../../parameters/maps-core/bgcolor.yaml' 16 | - $ref: '../../../../parameters/maps-core/transparent.yaml' 17 | - $ref: '../../../../parameters/maps-core/void-color.yaml' 18 | - $ref: '../../../../parameters/maps-core/void-transparent.yaml' 19 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 20 | - $ref: '../../../../parameters/unspecified/f-mapTile.yaml' 21 | responses: 22 | '200': 23 | $ref: '../../../../responses/tiles-core/rMapTile.yaml' 24 | '204': 25 | $ref: '../../../../responses/tiles-core/rEmptyTile.yaml' 26 | '404': 27 | $ref: '../../../../responses/common-core/rNotFound.yaml' 28 | '406': 29 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 30 | '500': 31 | $ref: '../../../../responses/common-core/rServerError.yaml' 32 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/map-tiles/pDataSetMapTileSet.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a default map tileset of the whole dataset for the specified tiling scheme (tile matrix set) 5 | operationId: .dataset.map.getTileSet 6 | parameters: 7 | - $ref: '../../../../parameters/maps-core/collections.yaml' 8 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 9 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 10 | responses: 11 | '200': 12 | $ref: '../../../../responses/tiles-core/rTileSet.yaml' 13 | '404': 14 | $ref: '../../../../responses/common-core/rNotFound.yaml' 15 | '406': 16 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 17 | '500': 18 | $ref: '../../../../responses/common-core/rServerError.yaml' 19 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/map-tiles/pDataSetMapTileSetsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve the list of all default map tilesets for the whole dataset 5 | operationId: .dataset.map.getTileSetsList 6 | parameters: 7 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 8 | responses: 9 | '200': 10 | $ref: '../../../../responses/tiles-core/rTileSetsList.yaml' 11 | '404': 12 | $ref: '../../../../responses/common-core/rNotFound.yaml' 13 | '406': 14 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 15 | '500': 16 | $ref: '../../../../responses/common-core/rServerError.yaml' 17 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/styled-map-tiles/pStyledDataSetMapTile.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a styled map tiles 5 | operationId: .dataset.style.map.getTile 6 | parameters: 7 | - $ref: '../../../../parameters/tiles-core/tileMatrix.yaml' 8 | - $ref: '../../../../parameters/tiles-core/tileRow.yaml' 9 | - $ref: '../../../../parameters/tiles-core/tileCol.yaml' 10 | - $ref: '../../../../parameters/common-geodata/datetime.yaml' 11 | - $ref: '../../../../parameters/maps-core/collections.yaml' 12 | - $ref: '../../../../parameters/maps-core/subset.yaml' 13 | - $ref: '../../../../parameters/maps-core/crs.yaml' 14 | - $ref: '../../../../parameters/maps-core/subset-crs.yaml' 15 | - $ref: '../../../../parameters/maps-core/bgcolor.yaml' 16 | - $ref: '../../../../parameters/maps-core/transparent.yaml' 17 | - $ref: '../../../../parameters/maps-core/void-color.yaml' 18 | - $ref: '../../../../parameters/maps-core/void-transparent.yaml' 19 | - $ref: '../../../../parameters/styles-core/styleId.yaml' 20 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 21 | - $ref: '../../../../parameters/unspecified/f-mapTile.yaml' 22 | responses: 23 | '200': 24 | $ref: '../../../../responses/tiles-core/rMapTile.yaml' 25 | '204': 26 | $ref: '../../../../responses/tiles-core/rEmptyTile.yaml' 27 | '404': 28 | $ref: '../../../../responses/common-core/rNotFound.yaml' 29 | '406': 30 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 31 | '500': 32 | $ref: '../../../../responses/common-core/rServerError.yaml' 33 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/styled-map-tiles/pStyledDataSetMapTileSet.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve a styled map tileset of the whole dataset for the specified tiling scheme (tile matrix set) 5 | operationId: .dataset.style.map.getTileSet 6 | parameters: 7 | - $ref: '../../../../parameters/styles-core/styleId.yaml' 8 | - $ref: '../../../../parameters/maps-core/collections.yaml' 9 | - $ref: '../../../../parameters/unspecified/tileMatrixSetId.yaml' 10 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 11 | responses: 12 | '200': 13 | $ref: '../../../../responses/tiles-core/rTileSet.yaml' 14 | '404': 15 | $ref: '../../../../responses/common-core/rNotFound.yaml' 16 | '406': 17 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 18 | '500': 19 | $ref: '../../../../responses/common-core/rServerError.yaml' 20 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/dataset-tiles/styled-map-tiles/pStyledDataSetMapTileSetsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Map Tiles 4 | summary: Retrieve the list of styled map tilesets for the whole dataset 5 | operationId: .dataset.style.map.getTileSetsList 6 | parameters: 7 | - $ref: '../../../../parameters/styles-core/styleId.yaml' 8 | - $ref: '../../../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../../../responses/tiles-core/rTileSetsList.yaml' 12 | '404': 13 | $ref: '../../../../responses/common-core/rNotFound.yaml' 14 | '406': 15 | $ref: '../../../../responses/common-core/rNotAcceptable.yaml' 16 | '500': 17 | $ref: '../../../../responses/common-core/rServerError.yaml' 18 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/tileMatrixSets/pTileMatrixSet.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Tiling Schemes 4 | summary: Retrieve the definition of the specified tiling scheme (tile matrix set) 5 | operationId: getTileMatrixSet 6 | parameters: 7 | - $ref: '../../../parameters/unspecified/tileMatrixSetId.yaml' 8 | - $ref: '../../../parameters/unspecified/f-metadata.yaml' 9 | responses: 10 | '200': 11 | $ref: '../../../responses/tiles-core/rTileMatrixSet.yaml' 12 | '404': 13 | description: The requested tile matrix set id was not found 14 | content: 15 | application/json: 16 | schema: 17 | $ref: '../../../schemas/common-core/exception.yaml' 18 | '406': 19 | $ref: '../../../responses/common-core/rNotAcceptable.yaml' 20 | '500': 21 | $ref: '../../../responses/common-core/rServerError.yaml' 22 | -------------------------------------------------------------------------------- /openapi/paths/tiles-core/tileMatrixSets/pTileMatrixSetsList.yaml: -------------------------------------------------------------------------------- 1 | get: 2 | tags: 3 | - Tiling Schemes 4 | summary: Retrieve the list of available tiling schemes (tile matrix sets) 5 | operationId: getTileMatrixSetsList 6 | parameters: 7 | - $ref: '../../../parameters/unspecified/f-metadata.yaml' 8 | responses: 9 | '200': 10 | $ref: '../../../responses/tiles-core/rTileMatrixSetsList.yaml' 11 | '406': 12 | $ref: '../../../responses/common-core/rNotAcceptable.yaml' 13 | '500': 14 | $ref: '../../../responses/common-core/rServerError.yaml' 15 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rAPI.yaml: -------------------------------------------------------------------------------- 1 | description: The OpenAPI definition of the API. 2 | content: 3 | application/vnd.oai.openapi+json;version=3.0: 4 | schema: 5 | type: object 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rException.yaml: -------------------------------------------------------------------------------- 1 | description: An error occurred. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rInvalidParameter.yaml: -------------------------------------------------------------------------------- 1 | description: A query parameter has an invalid value. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rLandingPage.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The landing page provides links to the API definition (link relation `service-desc`, in this case path `/api`), 3 | to the Conformance declaration (path `/conformance`, link relation `conformance`), and to the Collections of geospatial data (path `/collections`, link relation `data`). 4 | content: 5 | application/json: 6 | schema: 7 | $ref: '../../schemas/common-core/landingPage.yaml' 8 | example: 9 | title: Buildings in Bonn 10 | description: Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API - Maps specification. 11 | links: 12 | - href: http://data.example.org/ 13 | rel: self 14 | type: application/json 15 | title: this document 16 | - href: http://data.example.org/api 17 | rel: service-desc 18 | type: application/vnd.oai.openapi+json;version=3.0 19 | title: the API definition 20 | - href: http://data.example.org/api.html 21 | rel: service-doc 22 | type: text/html 23 | title: the API documentation 24 | - href: http://data.example.org/conformance 25 | rel: http://www.opengis.net/def/rel/ogc/1.0/conformance 26 | type: application/json 27 | title: OGC API conformance classes implemented by this service 28 | - href: http://data.example.org/collections 29 | rel: http://www.opengis.net/def/rel/ogc/1.0/data 30 | type: application/json 31 | title: Information about the collections 32 | text/html: 33 | schema: 34 | type: string 35 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rNotAcceptable.yaml: -------------------------------------------------------------------------------- 1 | description: Content negotiation failed. For example, the `Accept` header submitted in the request did not support any of the media types supported by the server for the requested resource. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rNotFound.yaml: -------------------------------------------------------------------------------- 1 | description: The requested resource does not exist on the server. For example, a path parameter had an incorrect value. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/common-core/rServerError.yaml: -------------------------------------------------------------------------------- 1 | description: A server error occurred. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/common-core/exception.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/dynamic/rEnumeration.yaml: -------------------------------------------------------------------------------- 1 | description: An enumerated list of valid string values for API parameters. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/dynamic/enumeration.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/maps-core/rEmptyMap.yaml: -------------------------------------------------------------------------------- 1 | description: No data available for this map extent. 2 | -------------------------------------------------------------------------------- /openapi/responses/maps-core/rMap.yaml: -------------------------------------------------------------------------------- 1 | description: A map image returned as a response. 2 | content: 3 | image/png: 4 | schema: 5 | type: string 6 | format: binary 7 | image/jpeg: 8 | schema: 9 | type: string 10 | format: binary 11 | image/tiff; application=geotiff: 12 | schema: 13 | type: string 14 | format: binary 15 | -------------------------------------------------------------------------------- /openapi/responses/maps-core/rProjections.yaml: -------------------------------------------------------------------------------- 1 | description: The list of custom CRS projection operation methods (including their associated parameters) and datums supported by this API. 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/maps-core/projections.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rEmptyTile.yaml: -------------------------------------------------------------------------------- 1 | description: No data available for this tile. 2 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rMapTile.yaml: -------------------------------------------------------------------------------- 1 | description: A map tile image returned as a response. 2 | content: 3 | image/png: 4 | schema: 5 | type: string 6 | format: binary 7 | image/jpeg: 8 | schema: 9 | type: string 10 | format: binary 11 | image/tiff; application=geotiff: 12 | schema: 13 | type: string 14 | format: binary 15 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rTileMatrixSet.yaml: -------------------------------------------------------------------------------- 1 | description: tile matrix set 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/tms/tileMatrixSet.yaml' 6 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rTileMatrixSetsList.yaml: -------------------------------------------------------------------------------- 1 | description: List of tile matrix sets (tiling schemes). 2 | content: 3 | application/json: 4 | schema: 5 | type: object 6 | properties: 7 | tileMatrixSets: 8 | type: array 9 | items: 10 | $ref: '../../schemas/tms/tileMatrixSet-item.yaml' 11 | text/html: 12 | schema: 13 | type: string 14 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rTileSet.yaml: -------------------------------------------------------------------------------- 1 | description: Description of the tileset 2 | content: 3 | application/json: 4 | schema: 5 | $ref: '../../schemas/tms/tileSet.yaml' 6 | text/html: 7 | schema: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/responses/tiles-core/rTileSetsList.yaml: -------------------------------------------------------------------------------- 1 | description: List of available tilesets. 2 | content: 3 | application/json: 4 | schema: 5 | type: object 6 | required: 7 | - tilesets 8 | properties: 9 | links: 10 | type: array 11 | items: 12 | $ref: '../../schemas/common-core/link.yaml' 13 | tilesets: 14 | type: array 15 | items: 16 | $ref: '../../schemas/tms/tileSet-item.yaml' 17 | text/html: 18 | schema: 19 | type: string 20 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/confClasses.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - conformsTo 4 | properties: 5 | conformsTo: 6 | type: array 7 | items: 8 | type: string 9 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/exception.yaml: -------------------------------------------------------------------------------- 1 | title: Exception Schema 2 | description: JSON schema for exceptions based on RFC 7807 3 | type: object 4 | required: 5 | - type 6 | properties: 7 | type: 8 | type: string 9 | title: 10 | type: string 11 | status: 12 | type: integer 13 | detail: 14 | type: string 15 | instance: 16 | type: string 17 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/landingPage.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - links 4 | properties: 5 | title: 6 | type: string 7 | title: The title of the API. 8 | description: While a title is not required, implementors are strongly advised to include one. 9 | example: Buildings in Bonn 10 | description: 11 | type: string 12 | example: Access to data about buildings in the city of Bonn via a Web API that conforms to the OGC API Common specification. 13 | attribution: 14 | type: string 15 | title: attribution for the API 16 | description: The `attribution` should be short and intended for presentation to a user, for example, in a corner of a map. Parts of the text can be links to other resources if additional information is needed. The string can include HTML markup. 17 | links: 18 | type: array 19 | items: 20 | $ref: 'link.yaml' 21 | -------------------------------------------------------------------------------- /openapi/schemas/common-core/link.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - href 4 | - rel 5 | properties: 6 | href: 7 | type: string 8 | description: Supplies the URI to a remote resource (or resource fragment). 9 | example: http://data.example.com/buildings/123 10 | rel: 11 | type: string 12 | description: The type or semantics of the relation. 13 | example: alternate 14 | type: 15 | type: string 16 | description: A hint indicating what the media type of the result of dereferencing the link should be. 17 | example: application/geo+json 18 | templated: 19 | type: boolean 20 | description: This flag set to true if the link is a URL template. 21 | varBase: 22 | description: A base path to retrieve semantic information about the variables used in URL template. 23 | type: string 24 | example: /ogcapi/vars/ 25 | hreflang: 26 | type: string 27 | description: A hint indicating what the language of the result of dereferencing the link should be. 28 | example: en 29 | title: 30 | type: string 31 | description: Used to label the destination of a link such that it can be used as a human-readable identifier. 32 | example: Trierer Strasse 70, 53115 Bonn 33 | length: 34 | type: integer 35 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/collections.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - links 4 | - collections 5 | properties: 6 | links: 7 | type: array 8 | items: 9 | $ref: '../common-core/link.yaml' 10 | timeStamp: 11 | type: string 12 | format: date-time 13 | numberMatched: 14 | $ref: 'numberMatched.yaml' 15 | numberReturned: 16 | $ref: 'numberReturned.yaml' 17 | collections: 18 | type: array 19 | items: 20 | $ref: 'collectionDesc.yaml' 21 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/crs.yaml: -------------------------------------------------------------------------------- 1 | title: CRS 2 | oneOf: 3 | - description: Simplification of the object into a url if the other properties are not present 4 | type: string 5 | - type: object 6 | oneOf: 7 | - required: 8 | - uri 9 | properties: 10 | uri: 11 | description: Reference to one coordinate reference system (CRS) 12 | type: string 13 | format: uri 14 | - required: 15 | - wkt 16 | properties: 17 | wkt: 18 | allOf: 19 | - description: An object defining the CRS using the JSON encoding for Well-known text representation of coordinate reference systems 2.0 20 | - type: object # - $ref: 'projJSON.yaml' 21 | - required: 22 | - referenceSystem 23 | properties: 24 | referenceSystem: 25 | description: A reference system data structure as defined in the MD_ReferenceSystem of the ISO 19115 26 | type: object 27 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/dataType.yaml: -------------------------------------------------------------------------------- 1 | # This list may be extended (e.g. point clouds, meshes) 2 | anyOf: 3 | - type: string 4 | - type: string 5 | enum: 6 | - map 7 | - vector 8 | - coverage 9 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/numberMatched.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The number of elements in the response that match the selection parameters like `bbox`. 3 | type: integer 4 | minimum: 0 5 | example: 127 6 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/numberReturned.yaml: -------------------------------------------------------------------------------- 1 | description: |- 2 | The number of elements in the response. 3 | A server may omit this information, if the information about the 4 | number of elements is not known or difficult to compute. 5 | If the value is provided, the value shall be identical to the number 6 | of elements in the response. 7 | type: integer 8 | minimum: 0 9 | example: 10 10 | -------------------------------------------------------------------------------- /openapi/schemas/common-geodata/timeStamp.yaml: -------------------------------------------------------------------------------- 1 | description: This property indicates the time and date when the response was generated using RFC 3339 notation. 2 | type: string 3 | format: date-time 4 | example: "2017-08-17T08:05:32Z" 5 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/all-collections.yaml: -------------------------------------------------------------------------------- 1 | # This can be implemented as a dynamic enumeration type 2 | # returning all collections available on the server: 3 | $ref: ../../api/all-collections.json 4 | 5 | # Standardizing this capability would enable to generate and compile generic clients 6 | # from OpenAPI definitions which are not tied to a particular implementation. 7 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/enumeration.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: [ type, enum ] 3 | properties: 4 | type: 5 | type: string 6 | enum: [ enum ] 7 | enum: 8 | type: array 9 | items: 10 | type: string 11 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/styles.yaml: -------------------------------------------------------------------------------- 1 | # This can be implemented as a dynamic enumeration type 2 | # returning all styles available for the dataset: 3 | $ref: ../../api/styles.json 4 | 5 | # Standardizing this capability would enable to generate and compile generic clients 6 | # from OpenAPI definitions which are not tied to a particular implementation. 7 | # There is currently no way in OpenAPI to list styles specific to a particular collection. 8 | # If templated $ref were supported, we could do e.g. $templatedRef: ../../api/styles/{collectionId} 9 | # (see https://github.com/json-schema-org/json-schema-vocabularies/issues/36 and 10 | # https://github.com/OAI/OpenAPI-Specification/issues/2453). 11 | -------------------------------------------------------------------------------- /openapi/schemas/dynamic/tileMatrixSets.yaml: -------------------------------------------------------------------------------- 1 | # This can be implemented as a dynamic enumeration type 2 | # returning all tile matrix sets supported by the server: 3 | $ref: ../../api/tileMatrixSets.json 4 | 5 | # Standardizing this capability would enable to generate and compile generic clients 6 | # from OpenAPI definitions which are not tied to a particular implementation. 7 | -------------------------------------------------------------------------------- /openapi/schemas/tms/2DBoundingBox.yaml: -------------------------------------------------------------------------------- 1 | description: Minimum bounding rectangle surrounding a 2D resource in the CRS indicated elsewhere 2 | type: object 3 | required: 4 | - lowerLeft 5 | - upperRight 6 | properties: 7 | lowerLeft: 8 | $ref: '2DPoint.yaml' 9 | upperRight: 10 | $ref: '2DPoint.yaml' 11 | crs: 12 | $ref: '../common-geodata/crs.yaml' 13 | orderedAxes: 14 | type: array 15 | minItems: 2 16 | maxItems: 2 17 | items: 18 | type: string 19 | -------------------------------------------------------------------------------- /openapi/schemas/tms/2DPoint.yaml: -------------------------------------------------------------------------------- 1 | description: A 2D Point in the CRS indicated elsewhere 2 | type: array 3 | minItems: 2 4 | maxItems: 2 5 | items: 6 | type: number 7 | -------------------------------------------------------------------------------- /openapi/schemas/tms/style.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - id 4 | properties: 5 | id: 6 | description: An identifier for this style. Implementation of 'identifier' 7 | type: string 8 | title: 9 | description: A title for this style 10 | type: string 11 | description: 12 | description: Brief narrative description of this style 13 | type: string 14 | keywords: 15 | description: keywords about this style 16 | type: array 17 | items: 18 | type: string 19 | links: 20 | description: 'Links to style related resources. Possible link ''rel'' values 21 | are: ''style'' for a URL pointing to the style description, ''styleSpec'' 22 | for a URL pointing to the specification or standard used to define the style.' 23 | type: array 24 | minItems: 1 25 | items: 26 | $ref: '../common-core/link.yaml' 27 | -------------------------------------------------------------------------------- /openapi/schemas/tms/tileMatrixLimits.yaml: -------------------------------------------------------------------------------- 1 | title: TileMatrixLimits 2 | description: The limits for an individual tile matrix of a TileSet's TileMatrixSet, 3 | as defined in the OGC 2D TileMatrixSet and TileSet Metadata Standard 4 | type: object 5 | required: 6 | - tileMatrix 7 | - minTileRow 8 | - maxTileRow 9 | - minTileCol 10 | - maxTileCol 11 | properties: 12 | tileMatrix: 13 | type: string 14 | minTileRow: 15 | type: integer 16 | minimum: 0 17 | maxTileRow: 18 | type: integer 19 | minimum: 0 20 | minTileCol: 21 | type: integer 22 | minimum: 0 23 | maxTileCol: 24 | type: integer 25 | minimum: 0 26 | -------------------------------------------------------------------------------- /openapi/schemas/tms/tileMatrixSet-item.yaml: -------------------------------------------------------------------------------- 1 | title: Tile Matrix Set Item 2 | description: A minimal tile matrix set element for use within a list of tile matrix sets linking to a full definition. 3 | type: object 4 | required: 5 | - links 6 | properties: 7 | id: 8 | description: Optional local tile matrix set identifier, e.g. for use as unspecified `{tileMatrixSetId}` parameter. Implementation of 'identifier' 9 | type: string 10 | title: 11 | description: Title of this tile matrix set, normally used for display to a human 12 | type: string 13 | uri: 14 | description: Reference to an official source for this tileMatrixSet 15 | type: string 16 | format: uri 17 | crs: 18 | allOf: 19 | - description: Coordinate Reference System (CRS) 20 | - $ref: '../../schemas/common-geodata/crs.yaml' 21 | links: 22 | description: Links to related resources. A 'self' link to the tile matrix set definition is required. 23 | type: array 24 | items: 25 | $ref: '../../schemas/common-core/link.yaml' 26 | -------------------------------------------------------------------------------- /openapi/schemas/tms/tileMatrixSet.yaml: -------------------------------------------------------------------------------- 1 | title: Tile Matrix Set Definition 2 | description: A definition of a tile matrix set following the Tile Matrix Set standard. 3 | For tileset metadata, such a description (in `tileMatrixSet` property) is only required 4 | for offline use, as an alternative to a link with a `http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme` 5 | relation type. 6 | type: object 7 | required: 8 | - crs 9 | - tileMatrices 10 | properties: 11 | title: 12 | description: Title of this tile matrix set, normally used for display to a human 13 | type: string 14 | description: 15 | description: Brief narrative description of this tile matrix set, normally available 16 | for display to a human 17 | type: string 18 | keywords: 19 | description: Unordered list of one or more commonly used or formalized word(s) 20 | or phrase(s) used to describe this tile matrix set 21 | type: array 22 | items: 23 | type: string 24 | id: 25 | description: Tile matrix set identifier. Implementation of 'identifier' 26 | type: string 27 | uri: 28 | description: Reference to an official source for this tileMatrixSet 29 | type: string 30 | format: uri 31 | orderedAxes: 32 | type: array 33 | minItems: 1 34 | items: 35 | type: string 36 | crs: 37 | allOf: 38 | - description: Coordinate Reference System (CRS) 39 | - $ref: '../common-geodata/crs.yaml' 40 | wellKnownScaleSet: 41 | description: Reference to a well-known scale set 42 | type: string 43 | format: uri 44 | boundingBox: 45 | allOf: 46 | - description: Minimum bounding rectangle surrounding the tile matrix set, in the supported CRS 47 | - $ref: '2DBoundingBox.yaml' 48 | tileMatrices: 49 | type: array 50 | description: Describes scale levels and its tile matrices 51 | items: 52 | $ref: 'tileMatrix.yaml' 53 | -------------------------------------------------------------------------------- /openapi/schemas/tms/tilePoint.yaml: -------------------------------------------------------------------------------- 1 | type: object 2 | required: 3 | - coordinates 4 | properties: 5 | coordinates: 6 | type: array 7 | minItems: 2 8 | maxItems: 2 9 | items: 10 | type: number 11 | crs: 12 | allOf: 13 | - description: Coordinate Reference System (CRS) of the coordinates 14 | - $ref: '../common-geodata/crs.yaml' 15 | tileMatrix: 16 | description: TileMatrix identifier associated with the scaleDenominator 17 | type: string 18 | scaleDenominator: 19 | description: Scale denominator of the tile matrix selected 20 | type: number 21 | cellSize: 22 | description: Cell size of the tile matrix selected 23 | type: number 24 | -------------------------------------------------------------------------------- /openapi/schemas/tms/tileSet-item.yaml: -------------------------------------------------------------------------------- 1 | title: Tile Set Metadata item 2 | description: A minimal tileset element for use within a list of tilesets linking to full description of those tilesets. 3 | type: object 4 | required: 5 | - dataType 6 | - links 7 | - crs 8 | properties: 9 | title: 10 | description: A title for this tileset 11 | type: string 12 | dataType: 13 | allOf: 14 | - description: Type of data represented in the tileset 15 | - $ref: '../../schemas/common-geodata/dataType.yaml' 16 | crs: 17 | allOf: 18 | - description: Coordinate Reference System (CRS) 19 | - $ref: '../../schemas/common-geodata/crs.yaml' 20 | tileMatrixSetURI: 21 | description: Reference to a Tile Matrix Set on an offical source for Tile Matrix 22 | Sets such as the OGC NA definition server (http://www.opengis.net/def/tms/). 23 | Required if the tile matrix set is registered on an open official source. 24 | type: string 25 | format: uri 26 | links: 27 | description: Links to related resources. A 'self' link to the tileset 28 | as well as a 'http://www.opengis.net/def/rel/ogc/1.0/tiling-scheme' link 29 | to a definition of the TileMatrixSet are required. 30 | type: array 31 | items: 32 | $ref: '../../schemas/common-core/link.yaml' 33 | -------------------------------------------------------------------------------- /openapi/schemas/tms/variableMatrixWidth.yaml: -------------------------------------------------------------------------------- 1 | description: Variable Matrix Width data structure 2 | type: object 3 | required: 4 | - coalesce 5 | - minTileRow 6 | - maxTileRow 7 | properties: 8 | coalesce: 9 | description: Number of tiles in width that coalesce in a single tile for these 10 | rows 11 | type: number 12 | format: integer 13 | minimum: 2 14 | multipleOf: 1 15 | minTileRow: 16 | description: First tile row where the coalescence factor applies for this 17 | tilematrix 18 | type: number 19 | format: integer 20 | minimum: 0 21 | multipleOf: 1 22 | maxTileRow: 23 | description: Last tile row where the coalescence factor applies for this tilematrix 24 | type: number 25 | format: integer 26 | minimum: 0 27 | multipleOf: 1 28 | --------------------------------------------------------------------------------