workshops

Workshop Get ready to use IIIF and Allmaps, Sep 14 2026, TU Delft Library.

NB: This guide will be published as part of the Allmaps documentation.

This guide describes the process of georeferencing a IIIF resource in Allmaps Editor. It presumes you already have a URL to a IIIF Resource that can be opened in Allmaps. At the bottom of this page, you'll find a list of repositories supporting IIIF.

What is georeferencing?

Georeferencing an image means relating specific pixels of the image [x, y] to corresponding geographic coordinates [longitude, latitude]. A pair of corresponding points is called a Ground Control Point or GCP. With at least 2 or 3 GCPs, correspondences can be computed between any other pixel in the image and the world map. If all pixels are transformed, it is possible to render the original image on top of a world map. Depending on the algorithm used, the image is warped in a different way to suite the given set of GCPs as well as possible.

Georeferencing is not a new thing. Classical GIS tools like QGIS and ArcGIS have allowed this for a long time. Traditionally, this means saving a warped copy of the original image as a GeoTIFF, or generating an accompanying ‘world’ file. In both cases, the original raster image and its copies needed to be stored on the user’s device. This creates a lot of extra data and does not allow for easy updates to the georeferencing data.

Allmaps takes a different approach: it works with IIIF resources which are hosted primarily on institutional servers rather than personal devices. The only thing Allmaps requires is a so-called Georeference Annotation, a light-weight standardized document that includes all the information needed to georeference a resource. Allmaps automatically keeps a copy for all maps georeferenced in Allmaps Editor, thereby creating a collective open dataset of georeferenced maps around the world. No derivatives are stored: the original image is warped in the browser. This is very fast and can immediately reflect changes to the source data.

Step 1: Opening a IIIF resource

Supported resources

Allmaps Editor currently supports the following IIIF resources:

Dealing with error messages

Sometimes opening a valid IIIF Manifest URL might still throw an error. This could be caused by various issues, such as:

If you think Allmaps should support the Manifest, please file an issue here, or contact us by email or through the IIIF Slack. If you think the loaded Manifest is incorrect, contact the content provider and aks them to improve their services. If the error message is unclear, contact us for a more detailed explanation.

Step 2: Drawing the mask

Which mask?

Some maps have clear frames, others not so much. Try to include as much cartographic information as possible within the boundaries of the mask, including labels, but remove non-cartographic elements such as ornamentation, rims or legends. In the end, there is no "correct" mask and where you draw it depends on your interests and how you want to use the map. Fortunately, you can always go back and change the mask in Allmaps, or even create multiple masks for the same image, in case it contains additional inset maps, for example.

Your data in Allmaps

Edits in Allmaps Editor are automatically stored in the Allmaps database. They are licensed CC0 and published daily as an open dataset on the Allmaps homepage.

Other users opening the same map in Allmaps Editor will see the same edits, and will be able to alter and (hopefully!) improve them. Although Allmaps already stores individual edits in the database, you cannot yet easily pin a version or restore a previous version (undo). These functionalities will be added in future versions of Allmaps Editor.

It is therefore wise to save a copy of your data yourself if you want to keep this specific version.

Existing work

If you already see a mask, someone else has previously georeferenced the map. Please check their work and consider improving it. You can also select another map to georeference.

Step 3: Adding Ground Control Points

navPlace

If the loaded IIIF Manifest contains a navPlace property, this will be used to initiate the map view.

Step 4: Viewing and exporting results

Transformation algorithms

Polynomial uses a homogenous transformation to fit the image on the map (by moving, scaling, rotating and skewing it). This means that the control points might not be rendered in their exact geographical position. Helmert does the same without skewing the image. Thin plate spline respects the location of each control point and will transform the map between those points. This can result in a more distorted image.

Georeference Annotation

This JSON-LD document contains one or more Georeference Annotations. These conform to the specifications of the Georeference Extension, an official extension to the IIIF Presentation API and contain the following parts:

Multiple annotations will be exported as an Annotation Page, which contains a list of Georeference Annotations.

Managing annotations

Allmaps plans to release a tool for keeping track of your georeference maps and managing crowd-sourcing projects. Until this becomes available it's a good idea to keep track of all the images you georeferenced and the georeference annotations they resulted in, especially when working with groups. This could be for example a sheet with the following columns:

Finding IIIF Resources

detektIIIF3

detektIIIF3 is a browser extension for Chrome that will indicate if a IIIF URL is available for the currently opened web page. If this is the case, it will list those URLs and allow you to copy them. This is a great way of finding IIIF resources and opening them in Allmaps: URLs copied from the Manifests, Images and Collections tabs can be pasted in Allmaps Editor and Viewer.

In the options of the plugin you can also add the following patterns under Manifest Viewers for opening resources in Allmaps directly:

Label URL
Allmaps Viewer https://viewer.allmaps.org/?url=%%%URI%%%
Allmaps Editor https://editor.allmaps.org/images?url=%%%URI%%%

Institutions

Below is a list of organizations and repositories supporting IIIF. Trailing emojis 🌱 and 🚀 respectively indicate Allmaps Supporters and Innovators as part of the Allmaps-IIIF Partnership.

Repositories

The following repositories support IIIF and can be used to publish your own images:

4TU.ResearchData IIIF Service

Datasets in the 4TU data repository can be accessed through the IIIF APIs. You can find the link to the IIIF Manifest under the interoperability header in the right side bar. For example:

Dataset URL IIIF Presentation API endpoint
https://data.4tu.nl/datasets/8289a903-7ccf-401b-af66-f5b3c9abe4b6/1 https://data.4tu.nl/iiif/v3/8289a903-7ccf-401b-af66-f5b3c9abe4b6/1/manifest

Individual Image API endpoints are based on the asset UUIDs:

File URL IIIF Image API endpoint
https://data.4tu.nl/file/8289a903-7ccf-401b-af66-f5b3c9abe4b6/24bcf6b4-c5d5-4e3c-9cc7-3af30607481a https://data.4tu.nl/iiif/v3/8289a903-7ccf-401b-af66-f5b3c9abe4b6/24bcf6b4-c5d5-4e3c-9cc7-3af30607481a

For draft datasets, Presentation API endpoints can be accessed as follows; but only after login:

https://data.4tu.nl/iiif/v3/[uuid]/draft/manifest

The response could be saved in e.g. a GitHub gist to make it available on the internet without authentication.