Publication Date: 2019-02-11

Approval Date: 2018-12-13

Submission Date: 2018-11-09

Reference number of this document: OGC 18-078

Reference URL for this document: http://www.opengis.net/doc/PER/vtp-wfs3

Category: Public Engineering Report

Editor: Panagiotis (Peter) A. Vretanos

Title: OGC Vector Tiles Pilot: WFS 3.0 Vector Tiles Extension Engineering Report


OGC Engineering Report

COPYRIGHT

Copyright © 2019 Open Geospatial Consortium. To obtain additional rights of use, visit http://www.opengeospatial.org/

WARNING

This document is not an OGC Standard. This document is an OGC Public Engineering Report created as a deliverable in an OGC Interoperability Initiative and is not an official position of the OGC membership. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an OGC Standard. Further, any OGC Engineering Report should not be referenced as required or mandatory technology in procurements. However, the discussions in this document could very well lead to the definition of an OGC Standard.

LICENSE AGREEMENT

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD. THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

Except as contained in this notice, the name of LICENSOR or of any other holder of a copyright in all or part of the Intellectual Property shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Intellectual Property without prior written authorization of LICENSOR or such copyright holder. LICENSOR is and shall at all times be the sole entity that may authorize you or any third party to use certification marks, trademarks or other special designations to indicate compliance with any LICENSOR standards or specifications.

This Agreement is governed by the laws of the Commonwealth of Massachusetts. The application to this Agreement of the United Nations Convention on Contracts for the International Sale of Goods is hereby expressly excluded. In the event any provision of this Agreement shall be deemed unenforceable, void or invalid, such provision shall be modified so as to make it valid and enforceable, and as so modified the entire Agreement shall remain in full force and effect. No decision, action or inaction by LICENSOR shall be construed to be a waiver of any rights or remedies available to it.

None of the Intellectual Property or underlying information or technology may be downloaded or otherwise exported or reexported in violation of U.S. export laws and regulations. In addition, you are responsible for complying with any local laws in your jurisdiction which may impact your right to import, export or use the Intellectual Property, and you represent that you have complied with any regulations or registration procedures required by applicable law to make this license enforceable.

1. Summary

Feature data tiling, colloquially referred to as 'vector tiling', is a data delivery method that allows for large vector feature datasets to be systematically split into subsets or tiles [1]. This engineering report (ER) presents an extension specification for publishing of vector tiles data through an Application Programming Interface (API) that conforms to the emerging version 3.0 of the Web Feature Service (WFS) standard. The core of the WFS 3.0 standard offers direct fine-grained access to geospatial information at the feature level. The WFS standard specifies discovery and query operations for web services that publish feature data. Extensions to the WFS 3.0 Core API offer other capabilities such as transaction operations.

Note
This engineering report interchangeably uses both 'tiled feature data' and the colloquial term 'vector tiles'.

1.1. Requirements & Research Motivation

The research presented in this engineering report has been motivated by the increasing adoption of vector tiling within the geospatial industry.

The engineering report addresses deliverable D001 of the Vector Tiles Pilot. The Vector Tiles Pilot Call for Participation (CFP) outlines the deliverable as follows.

"D001: WFS 3.0 Extension Engineering Report - A WFS 3.0 Extension written as a draft OGC standard. The report shall take into account the WFS extension approach documented in Testbed 13. The WFS 3.0 standard is written as a RESTful reusable OpenAPI set of components with responses in JSON and HTML."

1.2. Prior-After Comparison

To date, the only OGC web service standard that offered a tiling approach was the Web Map Tile Service (WMTS) standard. Recently, a tiling storage mechanism has also been incorporated into the OGC GeoPackage standard. In contrast however, the WFS standard and its extensions do not currently offer a tiling mechanism.

Recognizing the increasing adoption of vector tiling across the industry, OGC produced a vector tiling engineering report in the OGC Testbed-13 project [2]. The OGC Testbed-13 Vector Tiles Engineering Report described the evaluation of existing vector tiling solutions and reported on WFS vector tiles experimentation conducted during the testbed. Amongst other recommendations, the engineering report recommended the extension of the WFS standard for support vector tiling.

1.3. Recommendations for Future Work

Future work should explore:

  • The potential for asynchronous support for the Vector Tiles extension of WFS 3.0 using the OGC PubSub specification.

  • The development of Executable Test Suites for compliance testing of implementations of the Vector Tiles extension of WFS 3.0.

1.4. Document contributor contact points

All questions regarding this document should be directed to the editor or the contributors:

Contacts

Name Organization

Panagiotis (Peter) A. Vretanos (editor)

CubeWerx Inc.

Clemens Portele

interactive instruments GmbH

Kalimar Maia

Mapbox

Brian Davidson

Mapbox

Luis Bermudez

Open Geospatial Consortium

Gobe Hobona

Open Geospatial Consortium

Andrea Aime

GeoSolutions

Chia-Cheng (Ricky) Lin

GIS.FCU

Jerome St-Louis

Ecere

1.5. Foreword

Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.

2. References

3. Terms and definitions

For the purposes of this report, the definitions specified in Clause 4 of the OWS Common Implementation Standard OGC 06-121r9 shall apply. In addition, the following terms and definitions apply.

  • feature

    abstraction of real world phenomena [ISO 19101-1:2014]
  • feature collection; collection

    a set of features from a dataset
  • tile

    a rectangular representation of geographic data, often part of a set of such elements, covering a spatially contiguous extent which can be uniquely defined by a pair of indices for the column and row along with an identifier for the tile matrix (adapted from OGC 07-057r7)
  • tiling scheme

    a scheme that defines how space is partitioned into individual tiles. It defines the coordinate reference system, the geometric properties of a tile, which space a uniquely identified tile occupies, and reversely which unique identifier corresponds to a space satisfying the geometric properties to be a tile.
  • tileset

    a series of tiles of a given tiling scheme containing encoded vector features from one or more feature collections

3.1. Abbreviated terms

  • API Application Programming Interface

  • MVT Mapbox Vector Tiles

  • VTP Vector Tiles Pilot

  • WFS Web Feature Service

  • WMTS Web Map Tile Service

4. Overview

Clause 5 describes two Vector Tile APIs for WFS 3.0; a 'Direct tile access path API' and a 'Feature access path API'. Both are primarily designed to support the portrayal or visualization use case. The first API, like the WMTS, is based on tiled feature data being organized into regularly gridded tiles arranged into a pyramid of tile matrices at a fixed set of resolutions (i.e. tile matrix set). The latter API treats features the way the WFS has always treated features and views vector tiles as simply another output format that a server may support. The feature access path API is designed to leverage the flexible query capabilities of the WFS to generate a vector tile response on the server side leaving the styling to be done on the client side.

In Clause 6 each participant describes the components that they developed and tested for the Vector Tiles Pilot. WFS 3.0 servers implementing one or both of the APIs described in Clause 5 were provided by the following participants:

  • CubeWerx

  • Ecere

  • GeoSolutions

  • interactive instruments GmbH

  • Mapbox

Clients able to interact with these servers were provided by the following participants:

  • Ecere

  • GIS FCU

  • Mapbox

  • GeoSolutions

The following table summarizes the result of the client and server interactions i.e. Technology Integration Experiments (TIE):

Table 1. WFS TIE Matrix
CLIENTS SERVERS

CubeWerx

Ecere

GeoSolutions

interactive instruments

Mapbox

Ecere

Connects

Connects

Connects

Connects

Connects

GIS FCU

Connects

Connects

Connects

Connects

Mapbox

Connects

Connects

Connects

Connects

Connects

5. Vector Tiles API for WFS 3.0

5.1. Introduction

OGC Web Feature Service (WFS) is that standard mostly used for disseminating and querying vector feature data on the Web. WFS 3.0 is a complete rewrite of previous versions, focusing on a simple RESTful core specified as reusable OpenAPI components with responses in JavaScript Object Notation (JSON) and Hypertext Markup Language (HTML).

Feature data tiling (colloquially referred to as vector tiling) is a proven mechanism for optimally storing, delivering and visualizing vector data from arbitrary large data sets, used to achieve high performance in Geographic Information Systems (GIS) for several decades. Multi-resolution tile sets leverage the fact that a typical client is either visualizing a large geospatial extent at low resolution, or a limited geospatial extent at high resolution. Furthermore, tiled feature data enables efficient caching of data and provides clients with the option of displaying the best currently available data while awaiting requests for more refined tiles.

The Mapbox Vector Tile (MVT) specifications is a way to encode vector tiles which has garnered widespread support and adoption and has brought vector tiles to mainstream web mapping applications.

Extending WFS 3.0 to support vector tiles, including those based on the MVT specification and GeoJSON Vector Tile (JVT) output formats, is an evolution of the standard that will help deliver geospatial data in a modern optimized mechanism.

This section provides two interfaces that can be used for accessing vector tiles through WFS 3.0 in Mapbox Vector Tile format. The first interface focuses on direct access to the tiles as defined by a tiling scheme, while the second one focuses on features and is more similar to a typical WFS 3.0 request.

Requirements Class: Core

http://www.opengis.net/spec/wfs/3.0/vt/req/core

Target type

Token

Requirement 1

http://www.opengis.net/spec/wfs/3.0/vt/req/core/direct-tile-access-path-api

Requirement 2

http://www.opengis.net/spec/wfs/3.0/vt/req/core/feature-access-path-api

The relationship between WFS feature collections and tiling schemes is one-to-many. That is to say that tiles for a specific WFS feature collection can be offered using one or more tiling schemes.

5.2. Direct tile access path API

5.2.1. Introduction

This interface focuses on accessing individual tiles directly. It provides resources describing supported tiling schemes, as well as templated paths to access individual tiles.

It assumes the following:

  • The tiling scheme ('tile matrix set' to use WMTS terminology) defines how space is partitioned into individual tiles.

  • In the context of the pilot, as in WMTS, all tiling schemes definitions uniquely identify tiles using a three-part identifier made up of {level} (zoom), {row} (vertical) and {col} (column: horizontal).

  • The level parameter references a particular zoom level of a fixed spatial resolution, akin to the typical use of an individual 'tile matrix' in WMTS.

  • With the exception of the GNOSISGlobalGrid implemented by Ecere, all other tiling schemes were regular grids of tiles.

Notes:

  • An implementation could either generate tiles on-the-fly or serve an existing pre-generated set of tiles.

  • A tiling scheme does not need to be a quad-tree tile pyramid, e.g. GlobalCRS84Pixel and GlobalCRS84Scale Well Known Scale Sets do not have a constant factor of 2 between zoom levels.

  • In the context of the pilot, only a read-only interface has been considered.

Requirement 1

http://www.opengis.net/spec/wfs/3.0/vt/req/core/direct-tile-access-path-api

An implementation asserting support of the Direct Tile Access Path API shall support the behavior described in Clause 5.2 of the Vector Tiles extension of WFS 3.0 .

5.2.2. Preliminaries

OPTIONS & HEAD method

"Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional HTTP headers to tell a browser to let a web application running at one origin (domain) have permission to access selected resources from a server at a different origin" [1]. It is recommended that the OPTIONS & HEAD methods be available on each resource in order to support CORS preflight request and to be able to determine the supported representations, methods and response headers.

Content negotiation

According to the WFS specification (clause 7.8): "…​any server that supports multiple encodings will have to support a mechanism to mint encoding-specific URIs for resources in order to express links, for example, to alternate representations of the same resource. This document does not mandate any particular approach for how this is supported by the server." Although it lists f as a parameter that is used on many paths in this email, this is but one possibility. Other methods, such as extensions, may also be used. It is up to the server.

OGC Tile Matrix Set Standard Candidate (17-083)

In general, this is the schema that should be used for the definition of a tiling scheme. However, in this pilot the following changes were made:

  • the coordinates for the topLeftCorner, as well as the lowerCorner and upperCorner of the boundingBox, are changed from a string to an array of double-precision floating point numbers

  • adding a "links" object to the tilingScheme definition so that templates, for accessing the tiles, can be included

   "links" : [
      {
         "rel" : "tiles",
         "type" : "application/geo+json",
         "title" : "Tile in GeoJSON. The link is a URI template where {level}/{row}/{col} is the tile based on the tiling scheme.",
         "href" : "https://services.interactive-instruments.de/vtp/daraa/tiles/default/{level}/{row}/{col}?f=json",
         "templated" : "true"
      },
      {
         "rel" : "tiles",
         "type" : "application/vnd.mapbox-vector-tile",
         "title" : "Mapbox Vector Tile. The link is a URI template where {level}/{row}/{col} is the tile based on the tiling scheme.",
         "href" : "https://services.interactive-instruments.de/vtp/daraa/tiles/default/{level}/{row}/{col}?f=mvt",
         "templated" : "true"
      }
   ]

In the content that follows this clause, any mention of OGC 17-083 should be interpreted to mean OGC 17-083 with the changes proposed above.

The following is a partial example description for the tiling scheme based on the GoogleMapsCompatible Well Known Scale Set:

   {
     "identifier": "smerc",
     "title": "Spherical Mercator projection with quad-tree zoom levels, compatible with Google Maps®, Bing Maps®, etc.",
     "boundingBox": {
       "lowerCorner": [
         -20037508.34278924,
         -20037508.34278924
       ],
       "upperCorner": [
         20037508.34278924,
         20037508.34278924
       ],
       "crs": "http://www.opengis.net/def/crs/EPSG/0/3857"
     },
     "supportedCRS": "http://www.opengis.net/def/crs/EPSG/0/3857",
     "wellKnownScaleSet": "http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible",
     "tileMatrices": [
       {
         "identifier": "0",
         "scaleDenominator": 559082264.028717,
         "tileWidth": 256,
         "tileHeight": 256,
         "matrixWidth": 1,
         "matrixHeight": 1,
         "topLeftCorner": [
           -20037508.3427892,
           20037508.3427892
         ]
       },
       {
         "identifier": "1",
         "scaleDenominator": 279541132.014358,
         "tileWidth": 256,
         "tileHeight": 256,
         "matrixWidth": 2,
         "matrixHeight": 2,
         "topLeftCorner": [
           -20037508.3427892,
           20037508.3427892
         ]
       },
    ...
Recommendations for further changes to OGC 17-083

The following were noted during the pilot as further recommendations to the Tile Matrix Set Candidate Standard:

  • Supporting tiling schemes with a variable number of columns would enable supporting global grids making adjustment for latitude regions, such as Ecere’s GNOSIS Global Grid as well as the CDB tiling grid. This was initially suggested in Testbed-13 (http://ogc.standardstracker.org/show_request.cgi?id=518) and discussed by the Web Map Service (WMS) Standards Working Group (SWG) at Technical Committee (TC) meetings in 2018. An example of how this could be described can be found here[http://maps.ecere.com/hms/tiles/GNOSISGlobalGrid?f=json] with a 'variableWidths' parameter.

Ecere GGG1
Figure 1. GNOSIS Global Grid at the South Pole