Skip to content

Allmaps

Curating, georeferencing and exploring for IIIF maps

100,000s of maps are available through IIIF, across libraries, archives and museums worldwide. Allmaps makes it easier and more inspiring to curate, georeference and explore collections of digitized maps.

  1. Works with any IIIF map

    More and more institutions across the world are adopting IIIF to provide access to their collections of digitized images. Among all these images are 100,000s of maps.

    With Allmaps, you can georeference any map from any institution that supports IIIF. Allmaps doesn’t require complicated GIS infrastructure and it doesn’t need to generate XYZ map tiles. All that’s needed is a IIIF server.

  2. Built on open standards

    All components of Allmaps use Georeference Annotations that hold each map’s georeference data. Georeference Annotations are based on W3C’s Web Annotation standard and are an approved extension to the IIIF Presentation API.

  3. Client-side map warping

    Allmaps can warp maps on-the-fly, in the browser. Allmaps functions without the need to first create image derivatives such as GeoTIFFs or map tiles.

    To warp a map, Allmaps uses the IIIF Image API to only download the portion of the image that’s needed, in the right scale. Allmaps Viewer can stitch maps that are composed of multiple sheets together in real-time.

  4. More than displaying map layers

    But Allmaps is not just about warping images and displaying map overlays: it’s about open standards and open data. A Georeference Annotation can be used to display a warped map, but there’s much more Allmaps can do with this data.

    You can build geospatial indexes to quickly find the maps you’re looking for, improve tools for map vectorization, draw GeoJSON on an unwarped map or automatically georeference maps by geocoding transcribed toponyms.

  5. It's all about the URL

    All that’s needed to georeference a map with Allmaps Editor is the URL of a IIIF Image or IIIF Manifest. You don’t need to create an account or to first upload and import images.

    Allmaps Viewer just needs the URL of a Georeference Annotation to warp a map. Allmaps Editor and Allmaps Viewer are simple static sites that don’t need a database or GIS infrastructure to run — just a IIIF server.

  6. Open source components

    The core components of Allmaps are open source and will always be freely available. The most important goal of the project is to make maps more accessible, from map collections from institutions big and small.

    Our plugins for MapLibre, OpenLayers and Leaflet make it easy to display georeferenced maps on your own website, without using infrastructure provided by Allmaps.

  7. Not just the browser

    The Allmaps Tile Server, a tiny proxy server that turns Georeference Annotations into XYZ map tile layers, can be used to view warped maps in existing mapping websites or applications like QGIS.

  8. Aerial photos & building plans

    Allmaps works with any IIIF resource that can be georeferenced. Maps hiding out as illustrations in books, newspapers or archival folders can be edited and viewed as well. Or other types of documents such as architectural drawings or aerial photographs.

    You can use Allmaps to study the past, but also to present contemporary maps or future proposals. In education contexts, it can be used to study a site accross different times and scales.

Getting started

  1. Find a map in the digital collections of an institution or public repository that supports IIIF. For example:

  2. Find the URL of the IIIF resource of the map you want to use and copy the URL to your clipboard. Often, you can find this URL by clicking the IIIF logo somewhere on the web page that displays the digitized map.

  3. Open the map in Allmaps Editor by pasting its IIIF URL:

    The Leventhal Map & Education Center has published a tutorial about georeferencing maps from their collections using Allmaps.

  4. View the resulting Georeference Annotation in Allmaps Viewer:

  5. Use the Georeference Annotation in our plugins for MapLibre, OpenLayers or Leaflet. With Allmaps Tile Server you can display the georeferenced map in applications like QGIS.

Examples

A few examples of maps georeferenced with Allmaps:

  1. Plattegrond van Rotterdam in 10 bladen (1895 - 1897) Plattegrond van Rotterdam in 10 bladen (1895 - 1897), Stadsarchief Rotterdam
  2. Atlas of the city of Lynn, Massachusetts Atlas of the city of Lynn, Massachusetts, Leventhal Map & Education Center
  3. Nirenstein Atlas, Hollywood, 1956 Nirenstein Atlas, Hollywood, 1956, Los Angeles Public Library
  4. Aerial survey, Manhattan Island, New York City Aerial survey, Manhattan Island, New York City, Library of Congress

The latest maps georeferenced with Allmaps:

You can view more recent maps in Allmaps Latest.

Tools

  • Georeference Annotation: specification of the data format used by Allmaps.
  • Allmaps Editor: georeference a map by entering the URL of a IIIF resource.
  • Allmaps Viewer: view georeferenced maps by entering the URL of a Georeference Annotation.
  • Allmaps Latest: the latest maps georeferenced with Allmaps.
  • Allmaps CLI: command-line interface for Allmaps.
  • Allmaps Tile Server: proxy server that generates an XYZ map tile layer from one or more Georeference Annotations. You can use the Allmaps Tile Server to display warped maps in applications like QGIS.
  • More tools and experiments can be found on GitHub and Observable.

Experiments

  • Allmaps Here: shows georeferenced maps around your current location.
  • Allmaps Explore: experimental interface for exploring all maps georeferenced with Allmaps, built with Protomaps.

Plugins

Allmaps provides plugins for the three most widely-used JavaScript mapping libraries. By loading a Georeference Annotation you can display a georeferenced IIIF map with just a few lines of code.

import { Map } from 'maplibre-gl'
import { WarpedMapLayer } from '@allmaps/maplibre'
const map = new Map({
container: 'map',
style: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
center: [-73.9337, 40.8011],
zoom: 11.5,
// These options are required for the Allmaps plugin:
maxPitch: 0,
preserveDrawingBuffer: true
})
const annotationUrl =
'https://annotations.allmaps.org/images/d180902cb93d5bf2'
const warpedMapLayer = new WarpedMapLayer()
map.on('load', () => {
map.addLayer(warpedMapLayer)
warpedMapLayer.addGeoreferenceAnnotationByUrl(annotationUrl)
})

View an interactive example of the Allmaps MapLibre plugin on Observable.

Developers

The core functionality of Allmaps is published on npm as individual JavaScript packages:

  • @allmaps/annotation: parses and generates Georeference Annotations.
  • @allmaps/transform: transforms pixel coordinates to geospatial coordinates (and vice versa) using the ground control points (GCPs) from a parsed Georeference Annotation.
  • @allmaps/render: renders georeferenced maps with WebGL, with the Canvas API or as raw pixel values.
  • @allmaps/id: uses the SHA-1 hashing algorithm to turn IIIF URLs into the identifiers used internally by Allmaps.
  • More packages and apps can be found in the Allmaps monorepo on GitHub.

Open data

Allmaps publishes the georeference data of all maps georeferenced with Allmaps Editor as open data in different formats. This metadata contains the ground control points (GCPs), the clipping mask and pointers to the map’s IIIF resource.

File Type Size
annotations.json Georeference Annotations
maps.json JSON
maps.ndjson Newline-delimited JSON
maps.geojson GeoJSON
maps.geojsonl Newline-delimited GeoJSON

The files above are updated twice per day. The data is licensed under CCO.

About Allmaps

Allmaps is a project by Bert Spaan Bert Spaan and Jules Schoonman Jules Schoonman. We love maps, but we can never find the maps we're looking for. We both think working with digitized maps is far too complicated and expensive. It should be easier and more fun!

Contributors

  • Bert Spaan: Freelance creative technologist. Founder of Allmaps and lead developer.
  • Jules Schoonman: Digital curator at Delft University of Technology Library. Founder of Allmaps and lead for educational projects.
  • Manuel Claeys Bouuaert: Freelance facilitator and cartographer. Developer and strategic thinker for Allmaps, expert in the mathematics that make it all work.
  • Ian Spangler: Assistant Curator of Digital & Participatory Geography at the Leventhal Map & Education Center. Director of the NEH-funded project that supports the development of Allmaps.
  • Luuk van de Ven: Brand designer and art director. Art direction and wireframes for Allmaps.
  • Bryan Haberberger: Independent contractor and full stack developer at Saint Louis University. Independent consultant for the Georeference Extension.

Other contributions have been made in the form of pull requests, issues or discussions on GitHub, feedback and ideas provided in the IIIF Maps Community Group and by our institutional partners.

Partners

Allmaps is supported and funded by the following organizations:

If you think Allmaps can be useful for your institution or if you have questions about the project, you can send us an email or reach us in the #allmaps channel of the IIIF Slack.