У чому різниця між 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 вимагає квантування координат, а це означає, що він може ввести помилку округлення, якщо ви не будете обережні. (Див. Документацію для topojson -q
.)
Для маніпуляцій на стороні сервера з геометріями, які не потребують топології, тоді GeoJSON, мабуть, простіший вибір. В іншому випадку, якщо вам потрібна топологія або ви хочете надіслати геометрію по дроту клієнту, використовуйте TopoJSON.
TopoJSON ідеально підходить для охайних функцій, які "прив'язуються" один до одного, наприклад адміністративні регіони, але не допомагає отримувати більш брудні або органічні дані. Якщо ваші дані просто бали, то TopoJSON зовсім не допоможе.
Це залежить від багатьох міркувань. Серед них такі:
1) Характер (модель даних) об’єкта чи об’єктів, які ви хотіли б представляти 2) Будь-які атрибути, які ви хотіли б пов’язувати з цими об’єктами 3) Як ви хотіли б, щоб ці об’єкти поводились на сторінці (статичні проти динамічний)
Однак на це складне запитання можна відповісти абстрактно. Що стосується деяких особливостей, якщо у вас суміжний полігон покриття або інша ситуація, коли функції мають спільні межі, модель topojson дозволяє використовувати надмірність та коефіцієнт, що враховує цю модель.
Прочитайте документацію, розіб’єте приклади (наприклад, bl.ocks.org), а потім отримайте деякі дані та представіть їх як у geojson, так і в topojson та створіть власні візуалізації.