Разница между GeoJSON и TopoJSON

в чем разница между GeoJSON и TopoJSON и когда я буду использовать один над другим?

на описание TopoJSON на GitHub подразумевает, что файлы TopoJSON на 80% меньше. Так почему бы просто не использовать TopoJSON все время?

3 ответов


Если вас волнует размер файла или топология, используйте TopoJSON. Если вам все равно, используйте GeoJSON для простоты.

основным преимуществом TopoJSON является размер. Устраняя избыточность и используя более эффективное целочисленное кодирование координат с фиксированной точностью, файлы TopoJSON часто на порядок меньше файлов GeoJSON. Дополнительным преимуществом файлов TopoJSON является то, что кодирование топологии имеет полезные приложения, такие как упрощение сохранения топологии (аналогично MapShaper) и автоматическая генерация сетки (как в государственных границах в этот пример хороплет).

эти преимущества приходят по цене: более сложный формат файла. Например, в JavaScript вы обычно используете клиентская библиотека TopoJSON конвертировать TopoJSON в GeoJSON для использования со стандартными инструментами, такими как d3.geoPath. (В Python, вы можете использовать topojson.py.) Кроме того, целочисленный формат TopoJSON требует квантования координат, что означает, что он может ввести ошибку округления, если вы не будете осторожны. (См. документацию для topojson -q.)

для серверных манипуляций геометрией, не требующей топологии, тогда GeoJSON, вероятно, является более простым выбором. В противном случае, если вам нужна топология или вы хотите отправить геометрию по проводу клиенту, используйте TopoJSON.


TopoJSON идеально подходит для аккуратных функций, которые "привязываются" друг к другу, как административные регионы, но не помогают с более грязными или органическими данными. Если ваши данные просто точки, то TopoJSON не поможет вообще.


Это зависит от многих факторов. Среди них следующие:

1) характер (модель данных) объекта или объектов, которые вы хотите представить 2) любые атрибуты, которые вы хотели бы связать с этими функциями 3) Как вы хотите, чтобы эти функции вели себя на странице (статический vs динамический)

однако на этот вопрос трудно ответить абстрактно. Что касается некоторых особенностей, если у вас есть непрерывное полигональное покрытие или другая ситуация, когда объекты границы обмена, модель topojson позволяет использовать избыточность и фактор в модель.

прочитайте документацию, проанализируйте примеры (e.g, bl.ocks.org), а затем получить некоторые данные и представить его в geojson и topojson и создать свои собственные визуализации.