GeoJSON
拡張子 | .json , .geojson |
---|---|
MIMEタイプ | application/geo+json [1] |
種別 | GISファイル形式(英語版) |
派生元 | JSON |
国際標準 | RFC 7946 |
オープン フォーマット | yes |
ウェブサイト | geojson |
GeoJSON[1]はJavaScript Object Notation(JSON)を用いて空間データをエンコードし非空間属性を関連付けるファイルフォーマットである。属性にはポイント(住所や座標)、ライン(各種道路や境界線)、 ポリゴン(国や地域)などが含まれる。他のGISファイル形式との違いとして、Open Geospatial Consortiumではなく世界各地の開発者達が開発し管理している点で異なる[2]。TopoJSONはGeoJSONに影響され開発された。
歴史
GeoJSONフォーマットについての議論は2007年3月に始まり[3]、フォーマット仕様は2008年6月に完成した。
2015年4月、Internet Engineering Task ForceがGeographic JSON working groupを設立した[4]。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" } } } ] }
ジオメトリ
点(Point)は[x, y]
または[x, y, z]
である。[longitude, latitude ]
または[eastings, northings]
のいずれとしても解釈される可能性がある。3番目の数値はオプションの標高である。10進数で表現する[5]。
たとえば、ロンドン(51.5074° North, 0.1278° West)は、[-0.1278, 51.5074]
と表現される。
タイプ | 例 | |
---|---|---|
Point | { "type": "Point", "coordinates": [30, 10] } | |
LineString | { "type": "LineString", "coordinates": [ [30, 10], [10, 30], [40, 40] ] } | |
Polygon | { "type": "Polygon", "coordinates": [ [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]] ] } | |
{ "type": "Polygon", "coordinates": [ [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]] ] } |
Type | 例 | |
---|---|---|
MultiPoint | { "type": "MultiPoint", "coordinates": [ [10, 40], [40, 30], [20, 20], [30, 10] ] } | |
MultiLineString | { "type": "MultiLineString", "coordinates": [ [[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]] ] } | |
MultiPolygon | { "type": "MultiPolygon", "coordinates": [ [ [[30, 20], [45, 40], [10, 40], [30, 20]] ], [ [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]] ] ] } | |
{ "type": "MultiPolygon", "coordinates": [ [ [[40, 40], [20, 45], [45, 30], [40, 40]] ], [ [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]] ] ] } |
対応状況
OpenLayers[6]、Leaflet[7]、GeoServer[8]、Django[9] 、GDAL[10]、CartoDB[11]、PostGIS[12]及びMapnik[13](GDAL OGR変換ライブラリを経由し扱う)など多くのGIS関連ソフトウェアが対応しており、 Bing MapsやYahoo!、GoogleはAPIが対応している。 Googleマップにはライブラリを使用するか[14]、オブジェクトをインスタンス化することによって利用できる。 GitHubはGeoJSONのレンダリングに対応している[15]。
TopoJSON
TopoJSONはGeoJSONの拡張であり、トポロジーを記述する。
以下に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]] ] }
派生
転送効率向上、ストリーミング型処理等を目指し、各種の派生フォーマットがある。
- Newline-delimited GeoJSON
- FlatGeobuf
- GeoArrow
- GeoParquet
脚注
- ^ a b “RFC7946 The GeoJSON Format”. ietf.org. IETF. 2022年1月3日閲覧。
- ^ The GeoJSON Discussion List
- ^ March 2007 Archives by thread
- ^ “Geographic JSON (geojson) -”. datatracker.ietf.org. 2021年12月4日閲覧。
- ^ “GeoJSON RFC #3.1.1”. 2021年12月4日閲覧。
- ^ http://openlayers.org/dev/examples/vector-formats.html
- ^ http://leafletjs.com/reference.html#geojson
- ^ http://svn.codehaus.org/geoserver/tags/2.0.0-alpha1/geoserver/release/README.txt
- ^ http://geodjango.org/docs/db-api.html
- ^ http://gdal.org/ogr/drv_geojson.html
- ^ http://developers.cartodb.com/documentation/cartodb-js.html
- ^ http://pugs.postgresql.org/files/Introduction_to_PostGIS_v1.0.pdf
- ^ http://svn.mapnik.org/tags/release-0.6.0/docs/api_docs/python/mapnik-module.html
- ^ https://github.com/JasonSanford/GeoJSON-to-Google-Maps
- ^ https://github.com/blog/1528-there-s-a-map-for-that
外部リンク
- 公式サイト
- RFC 7946 - The GeoJSON Format
- 表示
- 編集