Allmaps

Curating, georeferencing and exploring for IIIF maps

Millions 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 around the world use IIIF to share their digitized collections. Among these images are millions of maps.

    With Allmaps Editor, you can georeference any map from an institution that supports IIIF. You don’t need complicated GIS infrastructure or to generate XYZ map tiles. All you need is a IIIF server.

    Allmaps Editor matching locations on a historical map to a modern map
  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.

    The IIIF Georeference Extension specification
  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.

    Allmaps Viewer displaying a historical map of New York City over a modern map
  4. More than displaying map layers

    Allmaps is about more than warping images and displaying map overlays: it’s about open standards and open data. Georeference Annotations let you do much more than display a map.

    You can build geospatial indexes to quickly find the maps you're looking for, turn traced features into GeoJSON, draw GeoJSON on an unwarped map or automatically georeference maps by geocoding transcribed toponyms.

    Building outlines traced with Annotorious on a historical map of Easthampton
  5. It's all about the URL

    Start georeferencing in Allmaps Editor with the URL of a IIIF Image or Manifest. There’s no need to create an account or upload images.

    Open a Georeference Annotation URL in Allmaps Viewer to display the map. The images stay at their IIIF source, while the georeference data describes how to position them.

    An Iceland map in Allmaps Viewer’s image view, with the source-information panel showing its Georeference Annotation URL
  6. Entirely open source

    The whole Allmaps project is open source: apps, libraries, plugins and APIs. Our goal is to make maps from collections big and small easier to find and use.

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

    The Allmaps source repository on GitHub in its desktop layout, showing the apps, APIs and packages
  7. Not just the browser

    Use georeferenced maps in QGIS and other GIS software. Load an XYZ tile layer from Allmaps Tile Server, or use GDAL to create GeoTIFFs and generate your own map tiles.

    Export PNG, JPEG or WebP images for presentations, publications or other applications.

    A georeferenced historical map of Asia over OpenStreetMap in QGIS
  8. Aerial photos & building plans

    Allmaps works with any IIIF resource that can be georeferenced, including maps in books, newspapers and archives, architectural drawings and aerial photographs.

    Study the past, present contemporary maps or explore future proposals. In education contexts, Allmaps helps explore a site across different times and scales.

    The TU Delft Aula floor plan from Delft University of Technology Library displayed over a modern map in Allmaps Viewer

Support Allmaps through IIIF

Help sustain the open source tools that bring map collections to life. Through the IIIF–Allmaps partnership, IIIF Consortium members can fund ongoing development and maintenance, with dedicated services, training and support in return.

The Allmaps–IIIF partnership page, with colorful map masks and the Allmaps and IIIF logos
  1. Maps georeferenced with Allmaps

    Plattegrond van Rotterdam in 10 bladen (1895 - 1897)
  2. Atlas of the city of Lynn, Massachusetts

    Leventhal Map & Education Center

    Atlas of the city of Lynn, Massachusetts
  3. Nirenstein Atlas, Hollywood, 1956

    Los Angeles Public Library

    Nirenstein Atlas, Hollywood, 1956
  4. Aerial survey, Manhattan Island, New York City

Recently georeferenced maps

Explore Allmaps Latest

See what people are georeferencing across collections around the world.

Georeference, explore, discover

Put historical maps in place, compare past and present, and find maps around you.

Explore all tools

Open source & open data

Bring historical maps into your own projects.

Explore the open source project

Historical maps on your website

Display georeferenced maps with MapLibre, Leaflet or OpenLayers.

// Imports and worker setup · 7 lines
import { Map, setWorkerUrl } from 'maplibre-gl'
import { WarpedMapLayer } from '@allmaps/maplibre'
import 'maplibre-gl/dist/maplibre-gl.css'
import workerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'

setWorkerUrl(workerUrl)
const map = new Map({
  container: 'map',
  style: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
  maxPitch: 0
})

const warpedMapLayer = new WarpedMapLayer()

const annotationUrl = 'https://annotations.allmaps.org/maps/f6b4464cc1690fc2@3845c52765326a07'

map.on('load', async () => {
  map.addLayer(warpedMapLayer)
  await warpedMapLayer.addGeoreferenceAnnotationByUrl(annotationUrl)

  const bounds = warpedMapLayer.getBounds()
  if (bounds) map.fitBounds(bounds, { padding: 30 })
})

Loading map…

Use the MapLibre plugin

From pixels to coordinates

Transform points and shapes using a map’s control points.

import { GcpTransformer } from '@allmaps/transform'

const gcps = [
  { resource: [0, 0], geo: [4.9, 52.38] },
  { resource: [1000, 0], geo: [4.92, 52.38] },
  { resource: [0, 1000], geo: [4.9, 52.36] }
]
const transformer = new GcpTransformer(gcps)

// Image pixels
const point = [500, 500]
console.log(transformer.transformToGeo(point))
// Longitude, latitude
// ≈ [4.91, 52.37]
Use the transform module

Download the georeference data

Find maps by place and reuse their georeference data.

Geographic footprints and control points from Atlas of Lynn, Massachusetts, with neighboring maps continuing past the edges.
Explore the dataset