Skip to main content

HTTP Endpoints

Shigola serves one tile API: OGC API - Tiles. Every route below belongs to it, apart from /metrics.

The service root is the OGC landing page. / returns JSON. An unknown path returns 404.

Routes

PathResource
/Landing page — includes shigolaVersion, the build serving the request
/apiThis service's OpenAPI 3.0 definition
/conformanceThe conformance classes implemented
/collectionsEvery collection — one per map, plus one per layer
/collections/{collectionId}One collection
/collections/{collectionId}/tilesThe collection's tilesets, one per scheme
/collections/{collectionId}/tiles/{tileMatrixSetId}Tileset metadata (?f=tilejson for TileJSON 3.0)
/collections/{collectionId}/tiles/{tileMatrixSetId}/{tileMatrix}/{tileRow}/{tileCol}A vector tile
/tileMatrixSetsThe tiling schemes served
/tileMatrixSets/{tileMatrixSetId}One scheme's definition
/metricsPrometheus metrics, when a Prometheus observer is configured. Cache metrics are listed under Layered cache.

Full documentation on OGC API - Tiles, including content negotiation, caching and the conformance classes declared.

GET /collections/:collectionId/tiles/:tileMatrixSetId/:tileMatrix/:tileRow/:tileCol

Returns a vector tile.

URL parameters

  • :collectionId: a map name from the Shigola config file, or map:layer for a single layer of that map.
  • :tileMatrixSetId: the tiling scheme, e.g. WebMercatorQuad. A collection offers the schemes its map's tile_matrix_sets names, or WebMercatorQuad if the key is omitted.
  • :tileMatrix: the tile zoom.
  • :tileRow: the tile row.
  • :tileCol: the tile column.

Row before column, which is the OGC order — worth checking against a client that assumes z/x/y. Every tile request names a scheme; there is no route that serves a map's default implicitly.

A tile holding no data at the requested zoom is an empty tile, not a 404.

Shigola serves no style document

Styling is a separate specification — OGC API - Styles — which Shigola does not implement. A client brings its own style and points a vector source at a tileset's TileJSON:

"sources": {
"parks": {
"type": "vector",
"url": "http://localhost:8080/collections/parks/tiles/WebMercatorQuad?f=tilejson"
}
}