| ジオJSON | |
|---|---|
| ファイル名拡張子 | .json、.geojson |
| インターネットメディアの種類 | application/geo+json[ 1 ] |
| フォーマットの種類 | GISファイル形式 |
| 延長 | JSON |
| 標準 | RFC 7946 |
| オープンフォーマット? | はい |
| Webサイト | geojson.org |
GeoJSON [ 1 ]は、単純な地理的特徴とその非空間属性を表現するために設計されたオープンスタンダードフォーマットです。JSONフォーマットをベースにしています。
フィーチャには、ポイント(住所や場所など)、ラインストリング(道路、高速道路、境界線など)、ポリゴン(国、州、土地区画など)、そしてこれらのタイプの複数の部分からなるコレクションが含まれます。GeoJSONフィーチャは、物理世界のエンティティの表現に限定されません。例えば、モバイルルーティングやナビゲーションアプリは、GeoJSONを使用してサービス提供範囲を記述する場合があります。[ 2 ]
GeoJSONフォーマットは、正式な標準化団体ではなく、インターネット上の開発者ワーキンググループによって作成、管理されている点で、他の地理情報システム標準とは異なります。 [ 3 ]
GeoJSON の注目すべき派生としてTopoJSONがあります。これは地理空間トポロジをエンコードし、通常はファイル サイズが小さくなる GeoJSON の拡張機能です。
GeoJSONフォーマットワーキンググループと議論は2007年3月に開始され[ 4 ]、フォーマット仕様は2008年6月に完成しました。
2015年4月にインターネットエンジニアリングタスクフォースは地理JSONワーキンググループ[ 5 ]を設立し、2016年8月にGeoJSONをRFC 7946としてリリースしました。
{ "type" : "FeatureCollection" , "features" : [{ "type" : "Feature" , "geometry" : { "type" : "Point" , "coordinates" : [ 102.0 , 0.5 ] }, "properties" : { "prop0" : "value0" } }, { "type" : "Feature" , "geometry" : { "type" : "LineString" , "coordinates" : [ [ 102.0 , 0.0 ], [ 103.0 , 1.0 ], [ 104.0 , 0.0 ], [ 105.0 , 1.0 ] ] }, "properties" : { "prop0" : "value0" , "prop1" : 0.0 } }, { "type" : "Feature" , "geometry" : { "type" : "Polygon" , "coordinates" : [ [ [ 100.0 , 0.0 ], [ 101.0 , 0.0 ], [ 101.0 , 1.0 ], [ 100.0 , 1.0 ], [ 100.0 , 0.0 ] ] ] }, "properties" : { "prop0" : "value0" , "prop1" : { "this" : "that" } } }] }
ポイントは[x, y]または[x, y, z]で表されます。 [経度, 緯度]または[東経, 北緯]で表されます。標高(メートル) [ 6 ]はオプションの3番目の数値です。これらは小数です。[ 7 ]
例えば、ロンドン(北緯51.5074度、西経0.1278度)は[-0.1278, 51.5074]
すべてのGeoJSON座標の座標参照系は、世界測地系1984(WGS 84)[WGS84]データムを使用した地理座標参照系であり、経度と緯度の単位は10進度です。[ 8 ]
| タイプ | 例 | |
|---|---|---|
| ポイント | { "type" : "Point" , "coordinates" : [ 30.0 , 10.0 ] } | |
| ラインストリング | { "タイプ" : "LineString" , "座標" : [ [ 30.0 , 10.0 ], [ 10.0 , 30.0 ], [ 40.0 , 40.0 ] ] } | |
| ポリゴン | { "type" : "Polygon" , "coordinates" : [ [ [ 30.0 , 10.0 ], [ 40.0 , 40.0 ], [ 20.0 , 40.0 ], [ 10.0 , 20.0 ], [ 30.0 , 10.0 ] ] ] } | |
{ "type" : "Polygon" , "coordinates" : [ [ [ 35.0 , 10.0 ], [ 45.0 , 45.0 ], [ 15.0 , 40.0 ], [ 10.0 , 20.0 ], [ 35.0 , 10.0 ] ], [ [ 20.0 , 30.0 ], [ 35.0 , 35.0 ], [ 30.0 , 20.0 ], [ 20.0 , 30.0 ] ] ] } | ||
| タイプ | 例 | |
|---|---|---|
| マルチポイント | { "type" : "MultiPoint" , "coordinates" : [ [ 10.0 , 40.0 ], [ 40.0 , 30.0 ], [ 20.0 , 20.0 ], [ 30.0 , 10.0 ] ] } | |
| マルチラインストリング | { "type" : "MultiLineString" , "coordinates" : [ [ [ 10.0 , 10.0 ], [ 20.0 , 20.0 ], [ 10.0 , 40.0 ] ], [ [ 40.0 , 40.0 ], [ 30.0 , 30.0 ], [ 40.0 , 20.0 ], [ 30.0 , 10.0 ] ] ] } | |
| マルチポリゴン | { "type" : "MultiPolygon" , "coordinates" : [ [ [ [ 30.0 , 20.0 ], [ 45.0 , 40.0 ], [ 10.0 , 40.0 ], [ 30.0 , 20.0 ] ] ], [ [ [ 15.0 , 5.0 ], [ 40.0 , 10.0 ], [ 10.0 , 20.0 ] , [ 5.0 , 10.0 ], [ 15.0 , 5.0 ] ] ] } | |
{ "type" : "MultiPolygon" , "coordinates" : [ [ [ [ 40.0 , 40.0 ], [ 20.0 , 45.0 ], [ 45.0 , 30.0 ], [ 40.0 , 40.0 ] ] ], [ [ [ 20.0 , 35.0 ], [ 10.0 , 30.0 ], [ 10.0 , 10.0 ], [ 30.0 , 5.0 ], [ 45.0 , 20.0 ], [ 20.0 , 35.0 ] ], [ [ 30.0 , 20.0 ], [ 20.0 , 15.0 ], [ 20.0 , 25.0 ], [ 30.0 , 20.0 ] ] ] ] } | ||
| ジオメトリコレクション | { "type" : "GeometryCollection" , "geometries" : [ { "type" : "Point" , "coordinates" : [ 40.0 , 10.0 ] }, { "type" : "LineString" , "coordinates" : [ [ 10.0 , 10.0 ], [ 20.0 , 20.0 ], [ 10.0 , 40.0 ] ] }, { "type" : "Polygon" , "coordinates" : [ [ [ 40.0 , 40.0 ], [ 20.0 , 45.0 ], [ 45.0 , 30.0 ], [ 40.0 , 40.0 ] ] ] } ] } | |
GeoJSON の代替として、行ごとに 1 つの地理的特徴をエンコードし、改行 (またはレコード区切り文字) でレコード間の区切りを指定する方法もあります。
この形式は、ツールが個々のレコードを並列に読み取ることができるため、通常のGeoJSONよりもはるかに高速かつ効率的に解析できます。この形式は改行区切りのJSONに似ています。
改行区切りの GeoJSON のバリエーションには次のものがあります:
TopoJSONはGeoJSONの拡張版であり、トポロジをエンコードします。TopoJSONファイル内のジオメトリは、個別に表現するのではなく、円弧と呼ばれる共有線分をつなぎ合わせて表現されます。[ 11 ]円弧は点のシーケンスであり、ラインストリングとポリゴンは円弧のシーケンスとして定義されます。各円弧は一度だけ定義されますが、異なるシェイプから複数回参照できるため、冗長性が低減され、ファイルサイズが縮小されます。[ 12 ]さらに、TopoJSONは、トポロジを保持するシェイプの簡素化、自動マップカラーリング、カートグラムなど、トポロジを使用するアプリケーションを容易にします。
TopoJSON仕様のリファレンス実装は、GeoJSON(またはESRIシェープファイル)からTopoJSONをエンコードするためのコマンドラインツールと、 TopoJSONを再びGeoJSONにデコードするためのクライアントサイドJavaScriptライブラリとして提供されています。TopoJSONは、人気のOGRツールのバージョン1.11以降[ 13 ]とPostGISのバージョン2.1.0以降でもサポートされています。[ 14 ]
座標緯度0°、経度0°付近のGISシェイプが与えられた場合、すべてのメタデータ、 Polygon、LineString、Point要素、円弧、プロパティを含むシンプルだが有効で完全な topojson ファイルは次のように定義されます。

{ "type" : "Topology" , "transform" : { "scale" : [ 1 , 1 ], "translate" : [ 0 , 0 ] }, "objects" : { "two-squares" : { "type" : "GeometryCollection" , "geometries" : [ { "type" : "Polygon" , "arcs" : [[ 0 , 1 ]], "properties" : { "name" : "Left_Polygon" }}, { "type" : "Polygon" , "arcs" : [[ 2 , - 1 ]], "properties" : { "name" : "Right_Polygon" }} ] }, "one-line" : { "type" : "GeometryCollection" , "geometries" : [ { "type" : "LineString" , "arcs" : [ 3 ], "properties" : { "name" : "Under_LineString" }} ] }, "two-places" : { "type" : "GeometryCollection" , "geometries" : [ { "type" : "Point" , "coordinates" : [ 0 , 0 ], "properties" : { "name" : "Origine_Point" }}, { "type" : "Point" , "coordinates" : [ 0 , - 1 ], "properties" : { "name" :"Under_Point" }} ] } }, "arcs" : [ [[ 1 , 2 ],[ 0 , - 2 ]], [[ 1 , 0 ],[ - 1 , 0],[ 0 , 2 ],[ 1 , 0 ]], [[ 1 , 2 ],[ 1 , 0 ],[ 0 , - 2 ],[ - 1 , 0 ]], [[ 0 , - 1 ],[ 2 , 0 ]] ] }