В чем разница между GeoJSON и TopoJSON и когда я могу использовать одно вместо другого?
описание TopoJSON на GitHub подразумевает, что файлы TopoJSON на 80% меньше. Так почему бы просто не использовать TopoJSON все время?
В чем разница между GeoJSON и TopoJSON и когда я могу использовать одно вместо другого?
описание TopoJSON на GitHub подразумевает, что файлы TopoJSON на 80% меньше. Так почему бы просто не использовать TopoJSON все время?
Если вам важен размер файла или топология, используйте TopoJSON. Если вас это не волнует, для простоты используйте GeoJSON.
Основное преимущество TopoJSON - это размер. За счет устранения избыточности и использования более эффективного целочисленного кодирования координат с фиксированной точностью файлы TopoJSON часто на порядок меньше файлов GeoJSON. Второстепенное преимущество файлов TopoJSON заключается в том, что кодирование топологии имеет полезные приложения, такие как упрощение с сохранением топологии (аналогично MapShaper) и автоматическое создание сетки (как в границах состояние-состояние в этом примере choropleth).
Эти преимущества имеют свою цену: более сложный формат файла. Например, в JavaScript вы обычно используете клиентскую библиотеку TopoJSON для преобразования TopoJSON в GeoJSON для использования с помощью стандартных инструментов, таких как d3.geoPath. (В Python вы можете использовать topojson.py.) Кроме того, TopoJSON's Целочисленный формат требует квантования координат, что означает, что он может привести к ошибке округления, если вы не будете осторожны. (См. Документацию для topojson -q
.)
Для манипулирования геометрией на стороне сервера, не требующей топологии, GeoJSON, вероятно, является более простым выбором. В противном случае, если вам нужна топология или вы хотите отправить геометрию по сети клиенту, используйте TopoJSON.
TopoJSON идеально подходит для аккуратных функций, которые «привязаны» друг к другу, например административных регионов, но не помогает с более беспорядочными или органическими данными. Если ваши данные представляют собой просто точки, то TopoJSON совершенно не поможет.
Это зависит от многих соображений. Среди них следующие:
1) Характер (модель данных) функции или функций, которые вы хотите представить 2) Любые атрибуты, которые вы хотите связать с этими функциями 3) Как вы хотите, чтобы эти функции вели себя на странице (статические или динамический)
Однако на этот вопрос сложно ответить абстрактно. Что касается некоторых особенностей, если у вас есть непрерывное полигональное покрытие или другая ситуация, когда объекты разделяют границы, модель topojson позволяет вам использовать избыточность и учитывать это в модели.
Прочтите документацию, проанализируйте примеры (например, bl.ocks.org), а затем получите некоторые данные и представьте их как в geojson, так и в topojson, и создайте свои собственные визуализации.