Approved

OGC Standard

OGC API - Maps - Part 1: Core
Joan Masó Editor Jérôme Jacovella-St-Louis Editor
Version: 1.0
Additional Formats: PDF
OGC Standard

Approved

Document number:20-058
Document type:OGC Standard
Document subtype:Implementation
Document stage:Approved
Document language:English

License Agreement

Use of this document is subject to the license agreement at https://www.ogc.org/license

Suggested additions, changes and comments on this document are welcome and encouraged. Such suggestions may be submitted using the online change request form on OGC web site: http://ogc.standardstracker.org/




I.  Abstract

The OGC API — Maps — Part 1: Core Standard defines a Web API for requesting maps over the Web. A map is a portrayal of geographic information as a digital representation suitable for display on a rendering device (adapted from OGC 06-042/ISO 19128 OpenGIS® Web Map Server (WMS) Implementation Specification). Implementations of the OGC API — Maps Standard are designed for a client to easily:

A server that implements OGC API — Maps provides information about what maps are offered. OGC API — Maps addresses use cases similar to those addressed by the OGC 06-042/ISO 19128 OpenGIS® Web Map Server (WMS) Implementation Specification Standard.

II.  Keywords

The following are keywords to be used by search engines and document catalogues.

ogcdoc, OGC document, API, openapi, maps


III.  Preface

This document defines the OGC API — Maps — Part 1: Core Standard. Suggested additions, changes and comments on this standard are welcome and encouraged. Such suggestions may be submitted as an issue on the OGC API — Maps GitHub repository.

IV.  Security considerations

Part 1 of the OGC API — Maps Standard only defines HTTP GET operations. As such the security considerations are limited to those applicable to a “read only” service. However, implementations of OGC API — Maps have to process resource paths and query parameters in a way that cannot be used by a client to inject malicious queries that makes available unforeseen data or even force the server to perform unwanted or dangerous actions. The following paragraphs enumerate some security considerations.

Due to the flexibility in generating maps, implementations of the OGC API — Maps Standard that are not optimized can easily encounter requests that take some time to resolve. If several of these requests are processed simultaneously, the server can become slow or unresponsive. Servers should take advantage of space partitioning structures that guarantee a deterministic maximum amount of data to process, such as the 2D Tile Matrix Set data structure (used in Cloud Optimized GeoTIFF, OGC API — Tiles, GeoPackage, etc.), which results in applying cartographic generalization for regions covering a larger area. Servers should also set and apply reasonable limits (e.g., maximum width, etc.) to prevent Denial of Service attacks.

Some OGC API — Maps deployments may assign different roles to different users that may result in accessing different collections or geographical areas that can be represented as maps. The access control can be described in the OpenAPI definition as discussed in OGC API — Common (https://docs.ogc.org/is/19-072/19-072.html#rc_oas30-security). Servers should take care that all resources in all representations and ways they can be requested (e.g., adding query parameters) are managed consistently.

Another security consideration is that maps generated by an endpoint of an OGC API — Maps implementation may be positionally incorrect and potentially guide users to wrong locations. One possible way this situation could happen is the manipulation by a malicious actor of a projection library installed on a server deployment.

Using HTTPS queries is preferred to using HTTP. The obvious reason is the map response returned by the endpoint of the OGC API — Maps implementation should be only accessible to the requesting user. Another reason is related to the public accessibility of the request itself. A request to the endpoint can reveal geographical extents that might be associated with private or sensitive information. For instance, users commonly visit “home” or “work” or “target places” (such as holiday destinations or churches). These requests can be used to predict personal or private activities.

V.  Submitting Organizations

The following organizations submitted this Document to the Open Geospatial Consortium (OGC):

VI.  Submitters

All questions regarding this submission should be directed to the editor or the submitters:

NameAffiliation
Joan Masó (editor)Universitat Autònoma de Barcelona (CREAF)
Jérôme Jacovella-St-Louis (editor)Ecere Corporation
Jeff HarrisonUS Army Geospatial Center
Satish SankaranEsri

VII.  Legacy

The requirements and conformance classes defined in the OGC API — Maps — Part 1: Core Standard are grounded in the work done by many OGC Members in the different versions of the OGC Web Map Service (WMS) Standard. In particular, the work of Jean-François (Jeff) de La Beaujardière was instrumental in the consolidation of WMS. He participated in the original OGC Testbeds that resulted in WMS 1.0, back in April 2000. He became the editor of all subsequent versions, including WMS 1.1, WMS 1.1.1, WMS 1.3, and ISO 19128:2005.

VIII.  Acknowledgements

Key work for crafting this OGC Standard was undertaken in the Open-Earth-Monitor Cyberinfrastructure (OEMC) project (https://earthmonitor.org/). The OEMC Project received funding from the European Union’s Horizon Europe research and innovation program under grant agreement number 101059548. Another project that provided key research is the All Data 4 Green Deal — An Integrated, FAIR Approach for the Common European Data Space (AD4GD) project (https://www.ad4gd.eu/). This project was co-funded by the European Union’s Horizon Europe research and innovation program under grant agreement number 101061001 as well as the United Kingdom and Switzerland. Another project that provided key research on applying OGC API Standards in the European digital twin of the ocean is the Integrated DigitaL Framework for Comprehensive Maritime Data and Information Services (ILIAD) project (https://ocean-twin.eu/). The ILIAD project received funding from the European Union’s Horizon Europe research and innovation program under grant agreement number 101037643.

Initial implementations and an Engineering Report constituting the first draft of this Standard were also produced thanks to funding from OGC Testbed 15. The editors also thank Natural Resources Canada for progress on this Standard achieved as part of GeoConnections 2020-2021 funded project number GNS20-21IFP02 (Modular OGC API Workflows).

1.  Scope

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. The Maps API can be described and documented using the OpenAPI specification and specifies resources for discovering and retrieving maps from a Web API.

Specifically, this OGC API — Maps Standard supports the following:

2.  Conformance

Conformance with this standard shall be checked using all the relevant tests specified in Annex A (normative) of this document if the respective conformance URLs listed in Table 1 are present in the conformance response. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site.

The standardization targets of all conformance classes are “Web APIs”.

The OGC API — Maps — Part 1: Core Standard defines twenty-three (23) conformance classes, each corresponding to one requirements class.

The core conformance class is the only mandatory class. All other conformance classes are optional and depend on the core.

These classes act as building blocks that should be implemented in combination with other more fundamental classes that provide support for documenting and formally describing a Web API (e.g., OpenAPI), listing supported conformance classes and listing available geospatial resources. Possible alternatives for these fundamental classes are OGC API — Common — Part 1: Core, OGC API — Features Part 1: Core or any other non-OGC classes that provide equivalent or alternative functionality.

The OGC API — Maps — Part 1: Core Standard is intended to define a minimal set of functions for a useful API for fine-grained access to retrieve maps. Additional classes may be specified in future parts of the OGC API — Maps series to add more capabilities or as vendor-specific extensions.

2.1.  Requirements classes defining resources

Requirements Class “Core” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/core)

The Maps API Core specifies requirements that any Web API implementation instance of the Maps API Standard must implement to claim conformance with the OGC API — Maps — Part 1: Core Standard. This requirements class defines an operation to retrieve a map but does not define any query parameters to customize the map.

An example request is below:

.../map

Requirements Class “Map Tilesets” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/tilesets)

The map tilesets requirements class defines a mechanism to list available map tilesets supported by the Web API instance and a mechanism for retrieving tiles of the map representation. The terms ’tile’ and ’tile set’ (alias tileset) are defined in the OGC Two Dimensional Tile Matrix Set Standard (OGC 17-083r4).

Example requests are below:

.../map/tiles
.../map/tiles/WorldCRS84Quad
.../map/tiles/WorldCRS84Quad/0/0/0

NOTE 1:    Despite the use of …​/map/tiles path templates in these examples which may become common in implementations of OGC API — Maps, these exact paths are only examples and are not required by OGC API — Tiles or by this Maps API Standard. Other paths are possible provided they are correctly described in the API description of the Web API and the links between resources.

NOTE 2:    The “Custom Projection CRS” requirements class is not included in this sub-section because its primary focus is not defining resources, but the Custom Projection requirements class also specifies a /projectionsAndDatums resource listing values available for the parameters it defines.

2.2.  Requirements classes defining parameters

These requirements classes of the Maps API define parameters that can be used together with any map resource.

NOTE 1:    In the effort to make OGC API Standards more consistent, some parts of these requirements classes are expected to be imported by a future part of OGC API — Common or be registered in the building blocks registry. A future revision of OGC API — Maps could reference them and ensure consistency with the relevant common requirements.

Requirements Class “Background” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/background)

The background requirements class defines how to request two particular background colors (bgcolor and void-color) and to specify whether areas of the map with no data or where the CRS / projection is invalid are transparent (using transparent and void-transparent).

Example requests are below:

.../map?bgcolor=0x001122&transparent=false&void-transparent=true

Requirements Class “Collection Selection” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/collections-selection)

The collection selection requirements class defines how to list specific geospatial data collection resources from which to retrieve maps.

An example request is below:

.../map?collections=buildings,roads,...

Requirements Class “Scaling” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/scaling) The scaling requirements class defines how to retrieve a resampled map. This is done by specifying a width and/or height parameter (in pixels), or a scale-denominator parameter.

Example requests are below:

.../map?width=1024&height=512
.../map?scale-denominator=20000

NOTE 2:    When implementing both this scaling requirements class and the spatial subsetting requirements class, the width and height can only be used for specifying the scale when a bbox or subset is also used for spatial subsetting, as otherwise they take on a subsetting role. When neither bbox nor subset is used for spatial subsetting, the scale-denominator parameter must be used to specify the scale.

Requirements Class “Display Resolution” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/display-resolution) The display resolution requirements class defines how to specify the resolution of the display (the size of a pixel in millimeters) using the mm-per-pixel parameter at which the map will be visualized so as to properly interpret scale denominators and apply scale-dependent symbology rules.

An example request is below:

.../map?mm-per-pixel=0.14

Requirements Class “Spatial Subsetting” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/spatial-subsetting) The spatial subsetting requirements class defines how to retrieve a spatial subset of a map using either a bbox or subset parameter.

Example subsetting requests using bounding box are below:

.../map?bbox=120,30,180,90
.../map?bbox-crs=[EPSG:3857]&bbox=500000,430000,1000000,1000000

Example subsetting requests using subset are below:

.../map?subset=Lat(30:90),Lon(120:180)
.../map?subset-crs=[EPSG:3857]&subset=X(500000:1000000),Y(430000:1000000)

This class also specifies how to retrieve a subset of a map using a center parameter, together with width and height parameters.

NOTE 3:    When implementing both this spatial subsetting requirements class and the scaling requirements class, the width and height can only be used for specifying the scale when a bbox or subset is also used for spatial subsetting, as otherwise they take on a subsetting role. When neither bbox nor subset is used for spatial subsetting, the scale-denominator parameter must be used to specify the scale.

Example subsetting requests using center point and dimensions:

.../map?center=-120,60&width=1024&height=512
.../map?center-crs=[EPSG:3857]&center=750000,70000&width=1024&height=512

Requirements Class “Date and Time” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/datetime) The temporal subsetting requirements class specifies how to request a temporal subset of the data using the datetime parameter, or the subset parameter for the time dimension.

Example requests are below:

.../map?datetime=2018-02-12T23:20:52Z
.../map?subset=time("2018-02-12T23:20:52Z")

Requirements Class “General Subsetting” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/general-subsetting) The general subsetting requirements class specifies how to request a subset of dimensions of the data besides the spatial and temporal dimensions using the subset parameter. This parameter also implies adopting a consistent way to describe all dimensions of the data in the collection’s extent description.

An example request is below:

.../map?subset=atm_pressure_hpa(500)

Requirements Class “Coordinate Reference System” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/crs)

The Coordinate Reference System requirements class defines how to specify the output Coordinate Reference System (CRS) of the map by referencing a Uniform Resource Identifier (URI) or compact URI (CURIE) of a CRS definition.

An example request is below:

.../map?crs=[EPSG:3031]

NOTE 4:    Every time that a URI to a CRS is required or recommended a CURIE equivalent is also valid. A CURIE {authority}[-{objectType}]:{id} would map to the following OGC URI: https://www.opengis.net/def/{objectType}/{authority}/0/{id}. If -{objectType} is missing, the default object type is crs.

Requirements Class “Orientation” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/orientation) The orientation requirements class defines how to specify an angle (expressed in degrees) for re-orienting how the map is displayed (orientation).

An example orientation request is below:

.../map?orientation=40

Requirements Class “Custom Projection CRS” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/projection) The custom projection CRS requirements class defines how to specify a custom CRS through a projection, including the coordinate operation method (crs-proj-method) and associated parameters (crs-proj-params), as well as a datum (crs-datum). This class also defines a crs-proj-center parameter for facilitating the selection of the most likely parameters to center the projection on an area of interest.

An example of an orthographic projection request is below:

.../map?
   crs-proj-method=[epsg-method:9840]&
   crs-proj-center=Lat(40),Lon(-120)

An example of a Lambert Conic Conformal projection with two standard parallels request is below:

.../map?
   crs-proj-method=[epsg-method:9802]&
   crs-proj-params=[epsg-parameter:8823](40),[epsg-parameter:8824](90)&
   crs-datum=[epsg-datum:6230]

NOTE 5:    This “Custom Projection CRS” requirements class also defines a /projectionsAndDatums resource listing values available for the parameters it defines.

2.3.  Requirements classes defining origins

Requirements Class “Collection Map” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/collection-map)

The collection map requirements class specifies how to retrieve maps from a specific geospatial data resource.

An example request is below:

/collections/buildings/map

Requirements Class “Dataset Map” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/dataset-map)

The dataset map requirements class specifies how to retrieve maps for a whole dataset potentially made up of multiple geospatial data resources. Any Web API implementing this requirements class must support dataset maps following this OGC API — Maps — Part 1: Core Standard. Dataset maps may combine content from multiple geospatial resources, regardless of whether those are available separately (as maps or otherwise).

An example request is below:

/map

Requirements Class “Styled Maps” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/styled-map)

The styled map requirements class specifies how to retrieve maps for a styled resource.

An example request is below:

.../styles/night/map

2.4.  Requirements classes defining representations

Requirements Classes for Encodings

The Maps API Standard does not mandate a specific encoding or format for representing maps. Requirements classes are provided for the following common map formats.

PNG (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/png)

Media type: image/png

JPEG (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/jpeg)

Media type: image/jpeg

JPEG XL (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/jpegxl)

Media type: image/jxl

TIFF (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/tiff)

Media type: image/tiff

SVG (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/svg)

Media type: image/svg+xml

HTML (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/html)

Media type: text/html

The Standard remains flexible and extensible for using other formats that users and providers might need through HTTP content negotiation.

That said, this Standard includes recommendations to support, where practical, HTML.

Requirements Class “API Operations” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/api-operations)

The API Operations requirements class specifies requirements to fully describe the Maps API operations and use specific operation identifier suffixes when providing an API definition. This requirements class is intended to be used in conjunction with other conformance classes for a specific API definition language and/or version, such as the OpenAPI 3.0 requirements class defined in OGC API — Common — Part 1: Core, or another eventual requirements class for OpenAPI 3.1.

Requirements Class “CORS” (https://www.opengis.net/spec/ogcapi-maps-1/1.0/req/cors)

The CORS requirements class specifies a requirement to implement CORS to support JavaScript clients (e.g. Web Browser applications) from a domain different from the OGC API — Maps endpoint.

All requirements classes and conformance classes described in this Standard are owned by the Standard(s) identified.

2.5.  Summary of conformance URIs

Table 1 — Conformance class URIs

Corresponding requirements classConformance class URI
Corehttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/core
Map Tilesetshttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/tilesets
Backgroundhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/background
Collection Selectionhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/collections-selection
Scalinghttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/scaling
Display Resolutionhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/display-resolution
Spatial Subsettinghttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/spatial-subsetting
Date and Timehttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/datetime
General Subsettinghttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/general-subsetting
Coordinate Reference Systemhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/crs
Orientationhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/orientation
Custom Projection CRShttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/projection
Collection Maphttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/collection-map
Dataset Maphttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/dataset-map
Styled Mapshttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/styled-map
PNGhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/png
JPEGhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/jpeg
JPEG XLhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/jpegxl
TIFFhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/tiff
SVGhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/svg
HTMLhttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/html
API Operationshttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/api-operations
CORShttps://www.opengis.net/spec/ogcapi-maps-1/1.0/conf/cors

3.  Normative references

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

G. Klyne, C. Newman: IETF RFC 3339, Date and Time on the Internet: Timestamps. RFC Publisher (2002). https://www.rfc-editor.org/info/rfc3339.

Charles Heazel: OGC 19-072, OGC API — Common — Part 1: Core. Open Geospatial Consortium (2023). http://www.opengis.net/doc/is/ogcapi-common-1/1.0.0.

Clemens Portele, Panagiotis (Peter) A. Vretanos, Charles Heazel: OGC 17-069r4, OGC API — Features — Part 1: Core corrigendum. Open Geospatial Consortium (2022). http://www.opengis.net/doc/IS/ogcapi-features-1/1.0.1.

Joan Masó, Jérôme Jacovella-St-Louis: OGC 20-057, OGC API — Tiles — Part 1: Core. Open Geospatial Consortium (2022). http://www.opengis.net/doc/IS/ogcapi-tiles-1/1.0.0.

Joan Masó, Jérôme Jacovella-St-Louis: OGC 17-083r4, OGC Two Dimensional Tile Matrix Set and Tile Set Metadata. Open Geospatial Consortium (2022). http://www.opengis.net/doc/IS/tms/2.0.0.

M. Nottingham: IETF RFC 8288, Web Linking. RFC Publisher (2017). https://www.rfc-editor.org/info/rfc8288.

ISO/IEC: ISO/IEC 18181-1:2024, Information technology — JPEG XL image coding system — Part 1: Core coding system. International Organization for Standardization, International Electrotechnical Commission, Geneva (2024). https://www.iso.org/standard/85066.html.

ISO/IEC: ISO/IEC 18181-2:2024, Information technology — JPEG XL image coding system — Part 2: File format. International Organization for Standardization, International Electrotechnical Commission, Geneva (2024). https://www.iso.org/standard/85253.html.

ISO/IEC: ISO/IEC 10918-1, Information technology — Digital compression and coding of continuous-tone still images: Requirements and guidelines. International Organization for Standardization, International Electrotechnical Commission, Geneva https://www.iso.org/standard/18902.html.

ISO/IEC: ISO/IEC 15948, Information technology — Computer graphics and image processing — Portable Network Graphics (PNG): Functional specification. International Organization for Standardization, International Electrotechnical Commission, Geneva https://www.iso.org/standard/29581.html.

Open API Initiative: OpenAPI Specification 3.0.3, https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md

Adobe development association: TIFF Revision 6.0 Final — June 3, (1992) https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf

W3C: Scalable Vector Graphics (SVG) v2. W3C Candidate Recommendation — October, (2018) https://www.w3.org/TR/SVG2/

WHATWG: HTML, Living Standard [online, viewed 2020-03-16]. Available at https://html.spec.whatwg.org/

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.

4.  Terms and definitions

This document uses the terms defined in OGC Policy Directive 49, which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this document and OGC documents do not use the equivalent phrases in the ISO/IEC Directives, Part 2.

This document also uses terms defined in the OGC Standard for Modular specifications (OGC 08-131r3), also known as the ‘ModSpec’. The definitions of terms such as standard, specification, requirement, and conformance test are provided in the ModSpec.

For the purposes of this document, the following additional terms and definitions apply.

4.1. coordinate reference system

coordinate system that is related to the real world by a datum (source: ISO 19111)

4.2. coordinate system

set of mathematical rules for specifying how coordinates are to be assigned to points (source: ISO 19111)

4.3. data cube (or datacube)

a multi-dimensional (“n-D”) array of values. Sometimes, the term data cube is applied in contexts where these arrays are massively larger than the hosting computer’s main memory; examples include multi-terabyte/petabyte data warehouses and time series of image data.

4.4. geographic information

information concerning phenomena implicitly or explicitly associated with a location relative to the Earth (source: ISO 19101)

4.5. height

  1. vertical elevation of an object in the real world above a reference point (height above the reference ellipsoid for geographic CRS such as [OGC:CRS84h] and [EPSG:4979]).

  2. size, in pixels, of a viewport along its vertical axis

Note 1 to entry: Both the spatial subsetting and scaling requirements classes make use of the height query parameter. In both cases, the parameter refers to the height of the image in pixels, but the effect of specifying a fixed value for the parameter is different in each case (selecting the portion of the map to return in the image vs. resampling the map to the requested image size).

4.6. map

portrayal of geographic information as a digital representation suitable for display on a rendering device (adapted from OGC 06-042)

4.7. map background

areas of the map having no data to represent. They are commonly left transparent or filled with a background color

4.8. portrayal

presentation of information to humans (source: ISO 19117)

4.9. rendering device

medium or apparatus on which the map being retrieved will be displayed, whether temporarily (e.g., computer screen) or permanently (e.g., paper).

4.10. scale

ratio between the size of a map shown in the rendering device (commonly expressed in mm or inches) and the equivalent geographic bounding box of a map in the reality (commonly expressed in meters or miles). Commonly, the ratio is expressed as a fraction, where 1 unit in the rendering device is equivalent to n units in the reality (in the same units of measure). In this case, n is called a scale denominator.

4.11. viewport

portion of a rendering device where information is being visualized

Note 1 to entry: For the purpose of this document, the viewport refers to the portion of the map resource response, such as a digital image, where the actual geospatial content of the map is rendered. It excludes any outside margin portions of the image where layout elements such as titles or a legend may be included, as could be defined by an extension. For a two-dimensional viewport, its dimensions are named horizontal and vertical, corresponding to the width and height of the viewport, respectively.

4.12. width

size, in pixels, of a viewport along its horizontal axis

Note 1 to entry: Both the spatial subsetting and scaling requirements classes make use of the width query parameter. In both cases, the parameter refers to the width of the viewport in pixels, but the effect of specifying a fixed value for the parameter is different in each case (selecting the portion of the map to return in the image vs. resampling the map to the requested image size).

4.13. Web API

An Application Programming Interface (API) using an architectural style that is founded on the technologies of the Web (source: OGC 17-069r3)

Note 1 to entry: See Best Practice 24: Use Web Standards as the foundation of APIs (W3C Data on the Web Best Practices) for more detail.

5.  Conventions

This section provides details of conventions used in this document.

5.1.  Identifiers

The normative provisions in this standard are denoted by the URI https://www.opengis.net/spec/ogcapi-maps-1/1.0.

All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.

5.3.  Use of HTTPS

For simplicity, the Maps API only refers to the HTTP protocol. This is not meant to exclude the use of HTTPS and simply is a shorthand notation for “HTTP or HTTPS.” Following the recent push towards enhancing web security, public facing web servers are expected to use HTTPS rather than HTTP. In the context of Maps API Standard, use of HTTPS provides a layer of security to prevent leaking of information related to users requesting map data for a particular geographical area, which may be private or sensitive in nature (for example, their own location, or the location of endangered species).

6.  Overview

6.1.  Introduction

The OGC API — Maps Standard defines building blocks which can be used in a Web API implementation to retrieve geospatial data as maps that are visual portrayals of the data created by applying a style to the data (see Requirements Class “Core”). Maps can present the whole area of the geospatial data or a subset of the content, such as by filtering the data by extent (see Requirements Class “Spatial subsetting”). Maps can be retrieved by arbitrary extent or as tiles (see Requirements Class “Map Tilesets”). The “Core” conformance class is the only mandatory one. All other conformance classes are optional and depend on the “Core”.

An annex with examples of map requests and responses is included as a way to ‘learn by example’ how this standard can be applied. See Annex B(informative)Examples.

An example OpenAPI definition for this Standard is available. Other examples are available on the OGC API website. Details on how to adjust and bundle the modular and reusable components used in this example OpenAPI definition can be found in Requirements Class “API Operations” .

Services and clients are encouraged to support as many of the Coordinate Reference Systems (CRSs) as possible for all geospatial data resources to maximize interoperability. However, this Standard does not require support for any specific CRS.

The OGC API — Maps Standard does not specify any requirement for the type of geospatial data resource that could be delivered as maps. If the geospatial data resources can be organized into maps, they can be supported regardless of whether they are feature data, coverages, a resource that does not represent data per se (e.g., an annotation) and so forth.

NOTE:    Geospatial data resources (e.g., collections) replace the concept of layer in WMS and WMTS. The main difference is that layers in WMS and WMTS were not defined by other OGC API Standards and did not support other functionalities.

These geospatial data resources can advertise one or more map portrayals in several resources, such as the dataset (see Requirements Class “Dataset Map”), a collection (see Requirements Class “Collection Map”), a dataset with a style, or a collection with a style (see Requirements Class “Styled Maps”). Implementations of other OGC API Standards can provide other origins that may be represented as maps. Accessing the geospatial data resource content (other than as maps) or its descriptions is possible but out of the scope of this Standard. If a description of the geospatial data resource is specified by another standard, and this description has a mechanism to add links to other resources, this Standard indicates the need to add a link to a map of this resource.

The OGC API — Maps Standard does not specify how to get a Web API definition, the conformance class list or the collections lists. However, the Maps API Standard assumes that the first two are defined by some OGC API Standard (e.g., OGC API — Common — Part 1: Core) and the latter by an OGC API for collections (e.g., OGC API — Common — Part 2: Geospatial data). A similar definition is provided directly by OGC API — Features — Part 1: Core.

This document is the first part of a series of OGC API — Maps “parts” that follows the core and extensions model. Future parts will specify other extensions, such as how to specify cartographic layout elements to be included on the map, how to specify a filter for which elements should be included on the map, and possibly how to query information for a point in a map.

6.2.  Map interoperability

One of the most significant use cases for the definition of the Maps API is the ability to generate maps on the web from layers, provided by multiple servers, that can be overlaid into a single view. The Maps API Standard provides a clear and common way to request a map image that covers a bounding box of interest with a defined number of pixel rows and columns. When the Maps API is implemented by different organizations that offer different collections of information, the same bounding box, in the same CRS, and the same number of rows and columns can be requested from each organization’s geospatial repository. The result is a set of images that perfectly overlap showing different variables of the same area depending on the collection of geospatial data requested. For example, a population map can be requested from one organization (e.g., SEDAC Population Density) and a weather forecast from another (e.g., NDFD Surface Wind Velocity) in the exact same way allowing to present both together in one overlaid view or side-by-side.

Table 2 — SEDAC GPWv4 Population Density, 2015 and Forecast NDFD, Surface (10m AGL) Wind Velocity (Barb, Knots)