Home

Geolocate Manifest to a Polygonal Area

Recipe home | Recipe List

Use Case

You have a special photograph taken during an event that you have encoded inside a IIIF Presentation API 3 Manifest. You would like to geolocate the Manifest to an outiline of the city in which the event took place (Göttingen, Germany). You want the coordinates to render in open source mapping systems, such as Leaflet. You would like to geolocate the Manifest using software that generates IIIF Presentation API 3.0 Annotations.

Implementation Notes

  • This Manifest extends the Manifest used in the simple image service recipe. See that recipe for more information about the Manifest.
  • The third party GeoJSON-LD context is included alongside the IIIF Presentation API 3.0 context. This supplies the vocabulary terms for the GeoJSON-LD Annotation bodies since the IIIF Presentation API 3 context does not describe those terms. The field @context can be an array, and when it is the Presentation API 3 context must be the last item in the array.
  • The GeoJSON specification states that the coordinates for the type Polygon must be a linear ring. A linear ring is a closed LineString with four or more positions. The first and last positions are equivalent, and they must contain identical values. It must follow the right-hand rule.

Restrictions

Nested GeoJSON coordinate arrays are incompatible with the processing model of JSON-LD 1.0. The JSON-LD 1.1 processing model does not have this restriction.

Manifest


Interface Example For This Recipe Manifest

There are robust viewers that support IIIF resource types and the Annotations that describe them. However, these viewers have not yet taken into account rendering coordinate assertions beyond the plain text understanding of the Annotation bodies. The IIIF Maps Community Group is considering plugins to support coordinate rendering systems, such as Leaflet embedded in viewing windows. For now, you can see the coordinates in the body of the Annotation on the Manifest render in a Leaflet viewer.

  • [Geolocate Canvas Fragment to a Point][TBD]
  • [Geolocate Manifest to a Point][TBD]