TopoJSON گونهای توپولوژیآگاه از GeoJSON است. از رمزگذاری کمان مشترک استفاده میکند (مرزهای میان چندضلعیها تنها یک بار ذخیره میشوند) و مختصات را بهصورت صحیح کوانتیده میکند — فایل حاصل ۶۰ تا ۸۰٪ کوچکتر از GeoJSON معادل است. ورودی استاندارد برای D3.js، Mapshaper و Observable؛ ایدهآل برای نقشههای کروپلت تعاملی و اطلسهای وب.
ویژگیهای کلیدی
دربارهٔ قالب TopoJSON
TopoJSON was invented by Mike Bostock, the author of D3.js, to solve a simple problem: in GeoJSON neighboring polygons store their shared border twice. TopoJSON moves all the lines into a common array of arcs that the objects then refer to. On top of that, coordinates are rounded to an integer grid and written as increments — the file gets sharply lighter.
The format is taken for web graphics and analytics: choropleths in D3, interactive atlases, boundary maps in Observable, lightweight layers for offline applications. The second motive is simplification: during generalization the shared borders move together, and no gaps appear between neighboring districts.
The output is a single document: every layer becomes a separate object inside it — roads, buildings, water and so on — and object attributes are preserved. Coordinates are in WGS84, up to 100,000 objects per layer. The topology is built by our own code, with no external dependencies.
The price of compactness is the rounding of coordinates. The grid step depends on the size of the area: for a district it is on the order of a meter, for a country hundreds of meters. For a web map that is invisible; for precise measurements take GeoJSON or GeoPackage.
چه برنامهای فایلهای TopoJSON را باز میکند
برنامهها و نرمافزارهای زیر میتوانند فایلهای TopoJSON (Topology-Aware JSON) (.topojson) صادرشده از OSM2CDR را باز و ویرایش کنند و با آنها کار کنند:
Format specifications
- Open standard
- 2D only
- Lossless (no quality loss)
- Stores feature attributes
- Output: 1 file
- TopoJSON (open spec). Topologically encoded GeoJSON: shared borders stored once, file size 30-80% smaller. Used by D3.js.
چه کسانی از نقشههای TopoJSON استفاده میکنند
چگونه TopoJSON را خروجی بگیریم
نحوه باز کردن پس از خروجی
- D3.js — include topojson-client and unpack the layer you need: topojson.feature(topology, topology.objects.buildings), then the usual d3.geoPath.
- Mapshaper — drag the file onto mapshaper.org: objects and attributes are visible, and simplification and export to SHP or GeoJSON are right there.
- QGIS — opens .topojson as an ordinary vector layer through GDAL; handy for checking the geometry with your own eyes.
- Converting to GeoJSON — topo2geo buildings=buildings.geojson < map.topojson from the topojson-client package, or ogr2ogr.
- Leaflet and MapLibre — they do not understand the format directly: unpack it into GeoJSON on the client with the topojson-client library and feed it on as usual.
نقشههای محبوب در TopoJSON
خروجی نقشهٔ TopoJSON (Topology-Aware JSON) را دریافت کنید
نقشههای حرفهای TopoJSON را از OpenStreetMap دانلود کنید. تولید آنی برای هر ناحیه.