A .topojson file is a topological encoding of geographic data: shared boundaries are stored once as arcs and referenced by the shapes that use them, with coordinates quantised and delta-encoded. It typically produces files a small fraction the size of the equivalent GeoJSON.
Private for supported formats — processed in your browser
Convert supported files
Runs on your device
+
Drop TOPOJSON files here
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.
Mike Bostock created TopoJSON in 2012 alongside D3, to solve a specific problem: a GeoJSON file of US counties stores every shared border twice, once for each county, which is both wasteful and a source of visible rendering seams. Encoding topology explicitly fixes both at once, and the format became standard in the D3 mapping ecosystem.
How TOPOJSON works
Shared boundaries are stored once in a top-level arcs array; geometries reference arcs by index.
A negative arc index means the arc is traversed in reverse, which is how two neighbours share one border.
Coordinates are quantised to an integer grid described by a transform of scale and translate.
Arc positions are delta-encoded, so each point stores only its difference from the previous one.
The size reduction is typically around 80% against equivalent GeoJSON, before any compression.
When to use TOPOJSON
Serving choropleth and boundary maps to a browser with minimal payload
Rendering adjacent regions without seams or overdrawn shared borders
Simplifying geometry while keeping shared borders consistent between neighbours
Converting to GeoJSON for tools that do not understand topology
Strengths and limitations
Strengths
Dramatically smaller than GeoJSON for data with shared boundaries
Shared borders stay identical between neighbours by construction
Enables topology-preserving simplification, which GeoJSON cannot support
Limitations
Not directly consumable — most tools require conversion to GeoJSON first
Quantisation is lossy, trading precision for size
Delta and arc encoding make the file effectively unreadable by eye
Compatibility
Native to D3 and the TopoJSON client library; QGIS and GDAL can read it, and most other tools want GeoJSON. Novus Convert decodes the transform and arc deltas locally and converts to GeoJSON.
Geometry and per-object properties are preserved. Quantisation means coordinates are reconstructed to the precision the file's transform declares, not to the original source precision.