# Babelbook map data

Retrieved 28 September 2026. This map uses an equirectangular projection for both land and markers: x = (longitude + 180) / 360 × 1000; y = (90 − latitude) / 180 × 500. The two layers share one transform and preserve aspect ratio at every screen size.

## Coastlines

Natural Earth 1:50m land boundaries, redistributed in world-atlas 2.0.2 (Natural Earth 4.1.0). Natural Earth data are public domain. Coordinates are decoded from TopoJSON and projected to SVG without hand-drawing or invented geometry.

- https://www.naturalearthdata.com/about/terms-of-use/
- https://github.com/topojson/world-atlas
- https://cdn.jsdelivr.net/npm/world-atlas@2.0.2/land-50m.json

## Language locations

Glottolog contributors, Glottolog CLDF language table. Licensed under Creative Commons Attribution 4.0 International. The source license is included in GLOTTOLOG-LICENSE.txt. Babelbook filters the data to its catalog, rounds coordinates to five decimal places, and links each displayed location to its Glottolog record.

- https://github.com/glottolog/glottolog-cldf/blob/master/cldf/languages.csv
- https://glottolog.org/
- https://creativecommons.org/licenses/by/4.0/

Catalog ISO 639-1 codes are mapped to ISO 639-3 using pycountry's ISO data. For macrolanguages without a direct location, Babelbook displays available member-language locations from the ISO 639-3 macrolanguage mapping. Bihari uses Glottolog's Bihari group reference location. Constructed languages are not assigned geographic markers.

- https://iso639-3.sil.org/sites/iso639-3/files/downloads/iso-639-3-macrolanguages.tab

Locations are representative reference points, not current speaker counts, national boundaries, full distributions, or claims of exclusive territory. Historical-language locations refer to historical areas. Clusters group nearby points on screen, anchored to an actual member location; individual coordinates are never jittered. Overlapping points remain accessible in the cluster's list. Languages without coordinates remain available in the catalog.

## Reproduction

Download the three inputs above and run `python scripts/build-map-data.py LAND_TOPOJSON GLOTTOLOG_CSV MACROLANGUAGE_TAB` from the repository. `source-checksums.json` records the exact source snapshot hashes. Generated location data are in `app/data/language-locations.json`; coastline geometry is in `public/world-land.svg`.
