Build on the map.
Put a map in your page that your page can steer, and take the data IntMap is built from — each dataset with the licence its source states and what that licence asks of you.
Free. No account and no key: the API is plain files on the same site as the map.
Steer an embedded map
Import the client and mount a map. Your page can then move it to a date or a place, show any share link, and hear where the reader has taken it.
<div id="map"></div>
<button id="to-1939" type="button">1 September 1939</button>
<script type="module">
import { mount } from 'https://rwmqx7dwb5-arch.github.io/IntMap/js/embed-client.js';
const map = mount('#map', { hash: '#v=22.0000,48.5000,3.30,0,0,f&tt=1914-06-27', height: 450 });
await map.ready;
document.querySelector('#to-1939').onclick = () => map.setTime('1939-09-01');
map.on('state', (s) => console.log(s.state.view, s.state.time, s.link));
</script>
What your page can send
| Message | Fields | What it does |
|---|---|---|
get | {} | Reply with the state the frame is in now. |
state | { hash } | Show the map a share-link fragment (#v=…) describes — layers, clock, comparison, caption and all. |
view | { lng, lat, zoom, bearing?, pitch? } | Move the camera; everything else stays. |
time | { at: 'YYYY-MM-DD' | year | 'live' } | Set the clock to a date, or to 1 July of a year (astronomical numbering: 0 is 1 BC, -499 is 500 BC), or back to now. |
What the map tells your page
| Message | Fields | What it does |
|---|---|---|
ready | { state, hash, link } | The frame has applied the link it was opened with. Sent once. |
state | { cause, state, hash, link } | The map changed. cause says whether the reader moved it (reader) or a link or command did (restore). |
reply | { id, ok, error?, state, hash, link } | The answer to a command that carried an id. |
The client is a convenience. The protocol is plain postMessage, so a page can also speak it directly:
const frame = document.querySelector('iframe');
const origin = new URL(frame.src).origin;
frame.contentWindow.postMessage(
{ protocol: 'intmap-embed', v: 1, type: 'view', id: '1', lng: 139.69, lat: 35.69, zoom: 9 },
origin);
window.addEventListener('message', (e) => {
if (e.source !== frame.contentWindow || e.origin !== origin) return; // only the map you framed
if (e.data && e.data.protocol === 'intmap-embed' && e.data.type === 'reply') console.log(e.data.ok, e.data.hash);
});
A command can only change what the frame shows, exactly as a share link can. The frame reports the map’s state — the same link its own “Open in IntMap” button carries — and nothing about the reader, and only to the page that framed it.
Embed a map →Open data
The datasets the map draws, as files you can download, with no key and no rate limit beyond the web host’s. Every address below is a JSON file.
api/v1/catalog.jsonEvery dataset offered for reuse: its files, its size, its licence as its source states it, what that licence requires, the credit to show — and every dataset not offered, with the reason.
api/v1/countries.jsonThe countries (Natural Earth codes, with English and Japanese names), and which datasets say something about each.
api/v1/countries/JPN.jsonOne country: the row every per-country dataset has for it, each with its own dataset’s terms.
api/v1/embed.jsonThe embed address and the message protocol above, as data.
const catalog = await fetch('https://rwmqx7dwb5-arch.github.io/IntMap/api/v1/catalog.json').then((r) => r.json());
const japan = await fetch('https://rwmqx7dwb5-arch.github.io/IntMap/api/v1/countries/JPN.json').then((r) => r.json());
for (const d of catalog.datasets) if (d.terms.credit) console.log(d.id, d.credit.join(' · '));
A dataset is offered only when every source it comes from states a licence that permits redistribution. One that states none, or states terms that are not known to, is listed as not offered rather than offered quietly. Where a dataset combines sources, the strictest condition applies to the whole file.
The borders of a date, shape by shape
In the map, set the clock to a date and open Share, then Cite: it saves the borders drawn on that date as GeoJSON, the whole world or the view. Each feature names its record and row, its dates and who stated them, its identifiers and its licence, read from the catalogue above row by row — a shape whose terms are non-commercial is left out and the file names it, and a shape cut against one keeps its record without its outline.
The datasets, as this build of the site offers them
48 datasets offered for reuse · 50 withheld
| Dataset | Licence | Requires | Size | Credit to show |
|---|---|---|---|---|
admin1-world | public domain | nothing | 2.4 MB | Natural Earth |
airports | Public domain ODbL 1.0 | credit · share-alike | 13 kB | OurAirports Country facts — mledoze/countries (capital, currency, languages, land borders, UN membership, demonym; ODbL 1.0, build time only) |
border-coast | public domain | nothing | 1.2 MB | Natural Earth |
border-provenance-clio | CC BY 4.0 | credit | 1.4 MB | Cliopatria — Seshat Global History Databank (CC BY 4.0) |
border-provenance-ohm | CC0 1.0 | nothing | 385 kB | OpenHistoricalMap |
coastline | public domain | nothing | 255 kB | Natural Earth |
connection-ledger | IntMap — Personal & Research Use License (LICENSE) | credit · non-commercial | 44 kB | IntMap (scripts/outbound-hosts.json) |
country-facts | ODbL 1.0 public domain | credit · share-alike | 65 kB | mledoze/countries IANA Time Zone Database Natural Earth admin-0 |
cshapes | CC BY-NC-SA 4.0 CC0 1.0 | credit · share-alike · non-commercial | 13.7 MB | CShapes 2.0 (Schvitz et al., ETH Zürich) OpenHistoricalMap |
fukushima-release | CC-BY-3.0 | credit | 6 kB | Fukushima Daiichi release time series (JAEA, Katata et al. 2015, CC BY 3.0) |
gazetteer-world | CC BY 4.0 | credit | 5.3 MB | GeoNames |
health | CC BY-NC-SA 3.0 IGO CC BY 4.0 | credit · share-alike · non-commercial | 33 kB | WHO Global Health Observatory — UHC service coverage index & IHR SPAR (CC BY-NC-SA 3.0 IGO) World Bank Open Data |
hist-admin-edges | CC0 1.0 | nothing | 60 kB | Wikidata (CC0 1.0) |
hist-admin-surveys-nc | CC BY-NC-SA 4.0 | credit · share-alike · non-commercial | 2.4 MB | HGIS de las Indias (Werner Stangl, University of Graz) — Territorial gazetteer for Spanish America, 1701-1808 |
hist-borders | CC0 1.0 | nothing | 34.0 MB | OpenHistoricalMap |
hist-borders-late | CC0 1.0 CC BY-NC-SA 4.0 | credit · share-alike · non-commercial | 920 kB | OpenHistoricalMap CShapes 2.0 (Schvitz et al., ETH Zürich) |
hist-cities | CC0 1.0 Universal CC BY 3.0 | credit | 1.6 MB | OpenHistoricalMap contributors Pleiades (pleiades.stoa.org) and its contributors Wikidata |
hist-clio | CC BY 4.0 CC0 1.0 CC BY-NC-SA 4.0 | credit · share-alike · non-commercial | 19.3 MB | Cliopatria — Seshat Global History Databank (CC BY 4.0) OpenHistoricalMap CShapes 2.0 (Schvitz et al., ETH Zürich) |
hist-coast-snap | public domain ODbL 1.0 | credit · share-alike | 21.4 MB | Natural Earth Historical map coastline — OpenStreetMap land polygons, OpenStreetMap contributors (ODbL 1.0) |
hist-courses | ODbL | credit · share-alike | 335 kB | Historical boundary courses — OpenStreetMap contributors (ODbL 1.0), reviewed by IntMap |
hist-era-spans | CC0 1.0 | nothing | 53 kB | Wikidata (CC0 1.0) |
hist-eras | GPL-3.0 | credit · share-alike | 10.6 MB | historical-basemaps (aourednik) — GPL-3.0 |
hist-eras-rest | GPL-3.0 CC0 1.0 CC BY 4.0 | credit · share-alike | 8.5 MB | historical-basemaps (aourednik) — GPL-3.0 OpenHistoricalMap Cliopatria — Seshat Global History Databank (CC BY 4.0) |
hist-places | CC BY 3.0 | credit | 1.3 MB | Pleiades — a gazetteer of past places (CC BY 3.0) |
hist-urban | CC BY 4.0 | credit | 496 kB | Reba, Reitsma & Seto (2016) — historical urban populations, 3700 BC – AD 2000 (CC BY 4.0) |
land-mask | public domain | nothing | 20 kB | Natural Earth |
language | public domain CC BY 4.0 | credit | 108 kB | CIA World Factbook Language identity, genealogical classification and endangerment status — Glottolog (CC BY 4.0) |
language-tree | public domain CC BY 4.0 | credit | 727 kB | CIA World Factbook Language identity, genealogical classification and endangerment status — Glottolog (CC BY 4.0) |
mobility | ODbL 1.0 public domain CC BY 4.0 | credit · share-alike | 77 kB | OpenFlights — airline route database (country-pair route counts for the pandemic simulator; snapshot of June 2014, no longer updated; ODbL 1.0) OurAirports World Bank Open Data Country facts — mledoze/countries (capital, currency, languages, land borders, UN membership, demonym; ODbL 1.0, build time only) |
ne-countries/ (4 files) | public domain | nothing | 3.8 MB | Natural Earth |
npp | CC0-1.0 | nothing | 305 kB | Wikidata |
ocean-currents | U.S. Government work — public domain | nothing | 163 kB | NOAA CoastWatch blended sea-surface geostrophic currents from satellite altimetry (0.25°, multi-mission: Sentinel-3A/B, CryoSat-2, Jason-2/3, SARAL) NOAA NCEI blended sea-surface wind stress (0.25°, monthly, Version 2.0) NOAA OISST v2.1 daily sea-surface temperature (0.25°, AVHRR-only, final) |
ocean-currents-field | U.S. Government work — public domain | nothing | 887 kB | NOAA CoastWatch blended sea-surface geostrophic currents from satellite altimetry (0.25°, multi-mission: Sentinel-3A/B, CryoSat-2, Jason-2/3, SARAL) NOAA NCEI blended sea-surface wind stress (0.25°, monthly, Version 2.0) NOAA OISST v2.1 daily sea-surface temperature (0.25°, AVHRR-only, final) |
ocean-currents-months | U.S. Government work — public domain | nothing | 3.0 MB | NOAA CoastWatch blended sea-surface geostrophic currents from satellite altimetry (0.25°, multi-mission: Sentinel-3A/B, CryoSat-2, Jason-2/3, SARAL) NOAA NCEI blended sea-surface wind stress (0.25°, monthly, Version 2.0) NOAA OISST v2.1 daily sea-surface temperature (0.25°, AVHRR-only, final) |
offline-sources | IntMap — Personal & Research Use License (LICENSE) | credit · non-commercial | 3 kB | IntMap (scripts/outbound-hosts.json) |
on-this-day | CC BY-NC-SA 4.0 | credit · share-alike · non-commercial | 387 kB | CShapes 2.0 (Schvitz et al., ETH Zürich) |
osm-diplo | ODbL | credit · share-alike | 1.9 MB | Diplomatic missions — OpenStreetMap (amenity=embassy / office=diplomatic, Overpass API) |
osm-space | ODbL | credit · share-alike | 1.1 MB | Spaceports & satellite ground stations — OpenStreetMap (aeroway=spaceport, man_made=launch_pad/satellite_dish, Overpass API) |
planet-names | public domain | nothing | 183 kB | USGS Gazetteer of Planetary Nomenclature |
planets/ (9 files) | CC BY 4.0 | credit | 5.4 MB | Solar System Scope — planetary surface textures |
polity-arcs | CC BY 4.0 CC0 1.0 CC BY-NC-SA 4.0 GPL-3.0 | credit · share-alike · non-commercial | 841 kB | Cliopatria — Seshat Global History Databank (CC BY 4.0) OpenHistoricalMap CShapes 2.0 (Schvitz et al., ETH Zürich) aourednik/historical-basemaps |
radiation-hindcast | CC-BY-4.0 | credit | 161 kB | Fukushima Cs-137 deposition survey (MEXT/NRA via IRSN, CC BY 4.0) |
religion | public domain | nothing | 60 kB | CIA World Factbook |
service-status | IntMap — Personal & Research Use License (LICENSE) | credit · non-commercial | 55 kB | IntMap (scripts/upstream-liveness.mjs, .github/workflows/atlas-eval.yml) |
small-bodies | U.S. Government work — not subject to copyright | nothing | 267 kB | NASA/JPL-Caltech — Small-Body Database |
spacecraft | U.S. Government work — not subject to copyright | nothing | 699 kB | NASA/JPL-Caltech — Horizons |
us-states | public domain | nothing | 46 kB | Natural Earth |
world-basemap | public domain | nothing | 284 kB | NASA EOSDIS GIBS — Blue Marble: Shaded Relief and Bathymetry |
Withheld
| Dataset | Why |
|---|---|
basins_mrb | no licence is stated as a value yet |
bathymetry | no licence is stated as a value yet |
border-detail/ | no licence is stated as a value yet |
border-provenance-gaps | the stated terms are not known to permit redistribution: IntMap licence (LICENSE) |
companies/ | no licence is stated as a value yet |
crust1 | no licence is stated as a value yet |
curriculum-units | the stated terms are not known to permit redistribution: 政府標準利用規約(第2.0版) / CC BY 4.0 · Open Government Licence · The text of the document, and/or excerpts from it, may be freely reproduced (the document's own statement) |
deep-sky | no licence is stated as a value yet |
ecoregions_2017 | no licence is stated as a value yet |
elections/ | no licence is stated as a value yet |
gazetteer-phone | no licence is stated as a value yet |
gibs-range | no licence is stated as a value yet |
hdi-series | no licence is stated as a value yet |
hist-admin-fill | no licence is stated as a value yet |
hist-admin-recon | the stated terms are not known to permit redistribution: IntMap licence (LICENSE) · CC0 1.0 with a request for attribution · 国土数値情報ダウンロードサイトコンテンツ利用規約(旧国土情報利用約款準拠版) · 政府標準利用規約(第2.0版) · per dataset, as each publisher states (public domain, CC0, CC BY, CC BY IGO, ODbL 1.0, CC BY-SA, OGL …) — scripts/histrecon/atoms/geoboundaries-manifest.json; a record derived from a share-alike dataset is offered under that licence (LICENSE §5) |
hist-admin-surveys | the stated terms are not known to permit redistribution: CC BY (geometry: «Copyright AWMC & Foss, CC-BY», no version stated) · CC BY 3.0 (Pleiades dates and names) · Open Government Licence - Canada · CC0 1.0 with a request for attribution |
hist-admin1 | no licence is stated as a value yet |
hist-admin2 | no licence is stated as a value yet |
hist-admin3 | no licence is stated as a value yet |
hist-claims | no licence is stated as a value yet |
hist-coverage-holes | no licence is stated as a value yet |
hist-fidelity | no licence is stated as a value yet |
hist-kuni | no licence is stated as a value yet |
histcities-homonyms | no licence is stated as a value yet |
histnames | no licence is stated as a value yet |
language-aliases | no licence is stated as a value yet |
maddison | no licence is stated as a value yet |
moons | no licence is stated as a value yet |
planets | not in the built site |
precip-mm | no licence is stated as a value yet |
precip-year | no licence is stated as a value yet |
railways/ | no licence is stated as a value yet |
slab2 | no licence is stated as a value yet |
stars | no licence is stated as a value yet |
subcable-overrides | no licence is stated as a value yet |
subcables | no licence is stated as a value yet |
subcables-lp | no licence is stated as a value yet |
subcables-meta | no licence is stated as a value yet |
tectonics | no licence is stated as a value yet |
tle/ | no licence is stated as a value yet |
us-elections | no licence is stated as a value yet |
volcano-detail | no licence is stated as a value yet |
volcanoes_gvp | no licence is stated as a value yet |
vs30 | no licence is stated as a value yet |
vs30-phone | no licence is stated as a value yet |
wars | no licence is stated as a value yet |
weekly-earth | the stated terms are not known to permit redistribution: U.S. public domain (USGS) · U.S. Government work, not subject to copyright (NASA EONET) |
whc-detail | the stated terms are not known to permit redistribution: © UNESCO |
whc-sites | the stated terms are not known to permit redistribution: © UNESCO |
who-don | no licence is stated as a value yet |
What you agree to when you reuse
Show the credit
When a dataset’s terms require credit, show the credit line the catalogue gives for it wherever you show the data.
Share-alike
A dataset under ODbL or a share-alike Creative Commons licence must stay under that licence when you publish it or something built from it.
Non-commercial
Datasets marked non-commercial may not be reused for commercial purposes. IntMap’s own files are under IntMap’s licence (personal, research and educational use).
IntMap’s code
The embed client is part of IntMap and under IntMap’s licence. The message protocol is documented on this page, so you can also speak it with your own code.