GeoJSON
この項目「GeoJSON」は途中まで翻訳されたものです。(原文:en:GeoJSON) 翻訳作業に協力して下さる方を求めています。ノートページや履歴、翻訳のガイドラインも参照してください。要約欄への翻訳情報の記入をお忘れなく。(2013年11月) |
拡張子 | .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]]
]
}
派生
[編集]転送効率向上、ストリーミング型処理等を目指し、各種の派生フォーマットがある。
脚注
[編集]- ^ 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