web-dev-qa-db-ja.com

GeoJSONとTopoJSONの違い

GeoJSONとTopoJSONの違いは何ですか?いつ使用するのですか?

GitHubでのTopoJSONの説明 は、TopoJSONファイルが80%小さいことを意味します。では、常にTopoJSONを常に使用しないのはなぜですか?

82
Luke

ファイルのサイズやトポロジが気になる場合は、TopoJSONを使用してください。どちらも気にしない場合は、簡単にするためにGeoJSONを使用します。

TopoJSONの主な利点はサイズです。冗長性を排除し、座標のより効率的な固定精度整数エンコードを使用することにより、TopoJSONファイルは多くの場合、GeoJSONファイルよりも1桁小さくなります。 TopoJSONファイルの2番目の利点は、トポロジを保存する単純化( MapShaper と類似)や自動メッシュ生成( この例はコロプレス )。

これらの利点には代償が伴います。より複雑なファイル形式です。たとえばJavaScriptでは、通常、 TopoJSONクライアントライブラリ を使用して、 d3.geoPath などの標準ツールで使用するためにTopoJSONをGeoJSONに変換します。 (Pythonでは、 topojson.py を使用できます。)また、TopoJSONの整数形式では、量子化座標が必要です。つまり、注意しないと丸め誤差が発生する可能性があります。 (topojson -qのドキュメントを参照してください。)

トポロジを必要としないジオメトリのサーバー側操作の場合、おそらくGeoJSONがより簡単な選択です。それ以外の場合、トポロジが必要な場合、またはジオメトリをネットワーク経由でクライアントに送信する場合は、TopoJSONを使用します。

139
mbostock

TopoJSONは、管理領域のように互いに「スナップ」するきちんとした機能には理想的ですが、より乱雑なデータや有機的なデータには役立ちません。データが単なるポイントである場合、TopoJSONはまったく役に立ちません。

9
sgillies

それは多くの考慮事項に依存します。その中には次のものがあります。

1)表現したい機能の性質(データモデル)2)それらの機能に関連付けたい属性3)これらの機能をページ上でどのように動作させたいか(静的vs動的)

しかし、これは要約で答えるのは難しい質問です。いくつかの詳細に関して、連続したポリゴンカバレッジまたはフィーチャが境界を共有している別の状況がある場合、topojsonのモデルを使用すると、冗長性を活用してモデルに組み込むことができます。

ドキュメントを読み、例を分析し(例:bl.ocks.org)、データを取得してgeojsonとtopojsonの両方で表現し、独自の視覚化を作成します。

3
wsvekla