Skip to content

Latest commit

 

History

History
217 lines (160 loc) · 12.7 KB

README.md

File metadata and controls

217 lines (160 loc) · 12.7 KB

OGC API - Features

This GitHub repository contains OGC's multi-part standard for querying geospatial information on the web, "OGC API - Features". All approved versions of the specification can be found here.

OGC API standards define modular API building blocks to spatially enable Web APIs in a consistent way. OpenAPI is used to define the reusable API building blocks with responses in JSON and HTML.

The OGC API family of standards is organized by resource type. OGC API Features specifies the fundamental API building blocks for interacting with features. The spatial data community uses the term 'feature' for things in the real world that are of interest.

If you are unfamiliar with the term 'feature', the explanations on Spatial Things, Features and Geometry in the W3C/OGC Spatial Data on the Web Best Practice document provide more detail.

Overview

OGC API Features provides access to collections of geospatial data.

GET /collections

Lists the collections of data on the server that can be queried (section 7.13), and each describes basic information about the geospatial data collection, like its id and description, as well as the spatial and temporal extents of all the data contained.

GET /collections/buildings/items?bbox=160.6,-55.95,-170,-25.89

Requests all the data in the collection "buildings" that is in the New Zealand economic zone. The response format (typically HTML or a GeoJSON feature collection, but GML is supported, too, and extensions can easily supply others) is determined using HTTP content negotiation.

Data is returned in pageable chunks, with each response containing a next link as many collections are quite large. The core specification supports a few basic filters, in addition to the bbox filter above, with extensions providing more advanced options (section 7.15).

GET /collections/{collectionId}/items/{featureId}

Returns a single 'feature' - something in the real-world (a building, a stream, a county, etc.) that typically is described by a geometry plus other properties. This provides a stable, canonical URL to link to the 'thing' (section 7.16).

See here for an overview of the extensions to support additional coordinate reference systems beyond WGS 84.

Using the standard

The standard is on the OGC website:

Those who want to just see the endpoints and responses can explore examples of OpenAPI definitions.

The reference version of the OpenAPI components and XML schemas are published in the OGC schema repository.

Closely related is the Common Query Language (CQL2) standard:

Server and client implementations

Overview of tools implementing OGC API Features

To test APIs, the following resources are available:

The OGC Validator is approved by the OGC Membership and is also used in the OGC Compliance Program to certify software products implementing OGC API Features. It currently tests against version 1.0.0 of Part 1 and Part 2.

The OGC Checker requests the Landing Page, Conformance Declaration and API Definition. Tests are mainly executed against the API Definition. It currently tests against version 1.0.1 of Part 1.

OGC Product Database

OGC maintains a public database of software products implementing approved OGC standards. The database also identifies products that pass the OGC Compliance Test for the standard, where available.

Implementers of OGC standards are encouraged to register their products in the database.

Communication

Join the mailing list or chat at https://gitter.im/opengeospatial/WFS_FES

Most all 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.

Additional parts of OGC API - Features

The OGC Features API SWG has identified the following extensions as the highest priority:

OGC API Features in ISO

Part 1 (Core) has been published by ISO as ISO 19168-1:2020.

Part 2 (Coordinate Reference Systems by Reference) has been published by ISO as ISO 19168-2:2022.

Additional information

Open issues for all parts are organized in GitHub projects:

Additional links:

Building

The latest drafts of each standard in this repository are build daily (based on the configuration contained in the asciidoctor.json file):

To generate the HTML versions of the standards from this repository yourself, ensure that you have Ruby and Asciidoctor set up and installed. Then run:

# Part 1: Core
asciidoctor -a data-uri -r asciidoctor-diagram core/standard/17-069.adoc
# Part 2: Coordinate Reference Systems by Reference
asciidoctor -a data-uri -r asciidoctor-diagram extensions/crs/standard/18-058.adoc
# Part 3: Filtering
asciidoctor -a data-uri -r asciidoctor-diagram extensions/filtering/standard/19-079.adoc
# Common Query Language (CQL2)
asciidoctor -a data-uri -r asciidoctor-diagram cql2/standard/21-065.adoc
# Part 4: Create, Replace, Update and Delete
asciidoctor -a data-uri -r asciidoctor-diagram extensions/transactions/create-replace-update-delete/standard/20-002.adoc
# Part 5: Schemas
asciidoctor extensions/schemas/standard/23-058.adoc
# Part 6: Property Selection
asciidoctor extensions/property-selection/standard/24-019.adoc
# Part 7: Geometry Simplification
asciidoctor extensions/geometry-simplification/standard/24-020.adoc
# Part 8: Sorting
asciidoctor extensions/sorting/standard/24-030.adoc
# Part 9: Text Search
asciidoctor extensions/text-search/standard/24-031.adoc

The resulting HTML files will be built in the same directory as the AsciiDoc file, e.g. as core/standard/17-069.html.

The contributor understands that any contributions, if accepted by the OGC Membership and ISO/TC 211, shall be incorporated into OGC and ISO/TC 211 OGC API standards documents and that all copyright and intellectual property shall be vested to the OGC.

The Features API 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 https://portal.ogc.org/files/?artifact_id=92169