GeoJSONとTopoJSONの違い


回答:


147

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

TopoJSONの主な利点はサイズです。冗長性を排除し、座標のより効率的な固定精度整数エンコーディングを使用することにより、TopoJSONファイルはGeoJSONファイルよりも1桁小さいことがよくあります。TopoJSONファイルの2番目の利点は、トポロジのエンコードに、トポロジ保存の簡略化(MapShaperと同様)や自動メッシュ生成(この例のコロプレスの状態と状態の境界のように)などの便利なアプリケーションがあることです。

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

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


2
そして、「共有線分」について読んだことを覚えていたとしても、「地形」は「地形」の略であると思いましたが、そうではありません。ここだ(前者はtopojsonで「トポ」の起源である)「トポロジ」と「地形」の違いについての素敵な読み取りが-と私はマイクの記事読まなければならないでしょうトポロジーを推論についてここを
赤エンドウ豆

インターネット経由で配線する場合は、toposjonのようなハイブリッドソリューション以外のgeobufを使用したいと思います。
tibetty

9

TopoJSONは、行政区域のように相互に「スナップ」する整頓された機能に最適ですが、より乱雑なデータや有機的なデータには役立ちません。データが単にポイントである場合、TopoJSONはまったく役に立ちません。


22
共有トポロジがない場合でも、TopoJSONの固定精度整数エンコーディングは、GeoJSONの浮動小数点よりも大幅に効率的です。
mbostock 2013

16
本当。私が間違っている。私の答えを削除しますが、あなたの貴重なコメントを失います!
sgillies 2013

ハ、ありがとう。:)追加の考慮事項を含む別の回答を提出しました。
mbostock 2013

3

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

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

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

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


wsveklaに感謝します。私はそれをやっています-実際にはbl.ocks.org(bl.ocks.org/wsvekla/4533258 bl.ocks.org/4348435)であなたの要点を見つけましたが、グーグルするのは簡単ではありません。しかし、あなたが指摘するように、多くの考慮事項があり、私はこれを学ぶために並べて比較を探求しようとしています。
ルーク

2
これらの2つのブロックは、同じ元のシェープファイルbl.ocks.org/4485308bl.ocks.org/4348435を参照します。TopoJSONは、同じファイル内の同じデータで複数の機能(国、部門、および地方自治体の境界)を表現する方法をようやく理解したときに本当に沈み始めました(geojsonではそれを行うことはできません)。これは、フィルター関数によって実行されます:function(a、b){return a.id!== b.id;})。それを理解しようとすると、topojsonが意味をなし始めます。より良いコードリファレンスと最小限のミニマリズムについては、Mikeのブロックを参照してください:bl.ocks.org/4108203
wsvekla
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.