Skip to content

opengeospatial/ogcapi-tiles

Repository files navigation

OGC API - Tiles

This GitHub repository contains OGC's multi-part OGC API - Tiles standard for querying and retrieving tiles of geospatial information on the web.

This is the current working version of this initiative, written using many AsciiDoc files that might be difficult to follow.

Please see the latest compiled specification available in HTML and PDF which are easier to read.

This specification relies on the Tile Matrix Set and Tile Set Metadata standard (version 2.0: HTML or PDF).

See the latest OpenAPI definition with SwaggerUI.

Overview

OGC API - Tiles is a standard API that provides tiles of geospatial information.

Different forms of geospatial information are supported, such as tiles of vector features ("vector tiles"), coverages, maps (or imagery) and potentially eventually additional types of tiles) of geospatial information.

Vector data represents geospatial objects as points, lines, and polygons. Tiles of vector data (i.e. Vector Tiles) represent subsets of vector data covering a large area (e.g. lines representing rivers in a country).

In this context, a map is essentially an image representing at least one type of geospatial information. Tiles of map data (i.e. Map Tiles) represent subsets of map data covering a large area (e.g. a satellite image).

Core

The Core conformance class of OGC API - Tiles simply requires that tiles can be retrieved according to a tile matrix set, using some template URL made up of:

  • a tile matrix,
  • a tile row, and
  • a tile column.

That URL template and information about the tileset can either be provided through the TileSet conformance class, or by some outside mechanism.

TileSet & TileSets List

The TileSets List and TileSet conformance classes defines transportable end-points:

  • GET .../tiles Retrieves the list of tilesets available (tilesets array property whose elements contain links to the tileset with self relation type)
  • GET .../tiles/{tileMatrixSetId} Retrieves the metadata for a specific tileset (tiled according to a particular tile matrix set).
  • GET .../tiles/{tileMatrixSetId}/{tileMatrix}/{tileRow}/{tileCol} Retrieves a tile from a specific tileset (tiled according to a particular tile matrix set) in the requested tile matrix set, on the requested tile matrix (e.g. zoom level) with the requested row and column.

DataSet & GeoData Tile Sets

The DataSet TileSets conformance class defines how a list of tilesets can be associated to an OGC API dataset / landing page, while the GeoData TileSets conformance class defines how a list of tilesets can be associated to an OGC API collection.

By combining Tiles building blocks with other OGC API standards, different types of tilesets can be provided from a single API:

Vector tiles:

(link relation: http://www.opengis.net/def/rel/ogc/1.0/tilesets-vector)

  • {datasetAPI}/tiles Dataset tilesets (multi-layer vector tiles)
  • {datasetAPI}/collections/{collectionId}/tiles Collection tilesets (vector tiles)

Map tiles (OGC API - Maps):

(link relation: http://www.opengis.net/def/rel/ogc/1.0/tilesets-map)

  • {datasetAPI}/map/tiles Dataset map tilesets
  • {datasetAPI}/collections/{collectionId}/map/tiles Collection map tilesets

Coverage tiles (OGC API - Coverages):

(link relation: http://www.opengis.net/def/rel/ogc/1.0/tilesets-coverage)

  • {datasetAPI}/collections/{collectionId}/coverage/tiles Collection coverage tilesets

Styled vector tiles, e.g. filtered by scale (OGC API - Styles):

(link relation: http://www.opengis.net/def/rel/ogc/1.0/tilesets-vector)

  • {datasetAPI}/styles/{styleId}/tiles Styled dataset tilesets (multi-layer vector tiles)
  • {datasetAPI}/collections/{collectionId}/styles/{styleId}/tiles Styled collection tilesets (vector tiles)

Styled map tiles (OGC API - Maps and OGC API - Styles):

(link relation: http://www.opengis.net/def/rel/ogc/1.0/tilesets-map)

  • {datasetAPI}/styles/{styleId}/map/tiles Styled dataset map tilesets
  • {datasetAPI}/collections/{collectionId}/styles/{styleId}/map/tiles Styled collection map tilesets

Introduction

Data with a location component (i.e. geospatial data) can be very large.

For example, consider satellite images that cover vast areas of Earth's surface.

To make these datasets easier to use, they can be divided into tiles - smaller subsets of data that can be used individually.

OGC API - Tiles provides a standardized way for requesting such tiles through the web.

OGC API standards define modular API building blocks to spatially enable Web APIs in a consistent way.

The OGC API - Tiles specification defines building blocks that can be combined with other OGC API building blocks such as OGC API - Maps (to retrieve map tiles) and OGC API - Coverages (to retrieve coverage tiles).

This specification is a complete rewrite of the of the OGC's previous Web Map Tile Service (WMTS) standards versions, focusing on simple reusable RESTful building blocks which can be described using the OpenAPI specification.

Quickstart guides

Quickstart guide for clients

Implementations

Several implementations of the draft standard exist:

Implementations of the draft specification / demo services

Draft specifications

OGC API - Tiles - Part 1: Core

The definition of OGC API - Tiles - Part 1: Core is the current focus of the Standards Working Group (SWG). As agreed by the SWG, the draft specification is organized into the following main conformance classes:

  1. Core specifies that tiles are retrievable according to a tile matrix set, using some template URL made up of a tile matrix, a tile row, and a tile column.
  2. TileSet specifies a tileset resource (tiles in a single Tile Matrix Set), including
  3. TileSets List specifies a tilesets resource describing multiple tilesets (2).
  4. DatasetTileSets specifies how to link to a list (3) of tilesets (2) for the whole dataset distributed by an API from its landing page (as defined by OGC API Common - Part 1).
  5. GeoDataTileSets specifies how to link to a list (3) of tilesets (2) from a resource representing a collection of geospatial data (as defined by OGC API Common - Part 2).
  6. GeoDataSelection specifies the collections= query parameter allowing to select specific collections of geospatial data to include within a dynamically generated tileset (2).

Six additional encodings conformance classes are pre-defined for PNG, JPEG, GeoTIFF, GeoJSON, Mapbox Vector Tiles and netCDF.

How to link to tilesets of Maps, Coverages and potentially other geospatial resources, is defined in the respective specification by leveraging the OGC API - Tiles building blocks.

Note that it was decided that Map Tiles would be an optional conformance class of OGC API - Maps - Part 1: Core, but this is pending an update to the draft specification.

Extensions

We foresee the following extensions (some of them might become OGC standards, and some might not)

  • Info (featureInfo) (started in: clause_7_tile_info)
  • Multi-tile (retrieve a ZIP with many tiles) (started in: clause_7_multitile)
  • TileMatrixSet transactions may allow to specify custom TileMatrixSet definitions according to which a server could dynamically generate tilesets

Communication

Join the OGC API - Tiles mailing list.

Visit the OGC API - Tiles project on the OGC portal after signing the Observer Agreement.

Most work on the specification takes place in GitHub issues, so browse there to get a good idea of what is happening, as well as past decisions.

Contributing

The contributor understands that any contributions, if accepted by the OGC Membership (and eventually the ISO/TC 211), shall be incorporated into OGC and ISO/TC 211 Web Map Service and Web Map Tile Service standards documents and that all copyright and intellectual property shall be vested to the OGC.

The OGC API - Tiles Standards Working Group (SWG) is the group at OGC responsible for the stewardship of the standard, but is working to do as much work in public as possible.

Pull Requests from contributors are welcomed. However, please note that by sending a Pull Request or Commit to this GitHub repository, you are agreeing to the terms in the Observer Agreement.