JSON
JavaScript Object Notation
JSONとは、データを key とvalue の組み合わせで記述する連想配列のひとつで、データを記述する方法は無限にあります。相手が人間の場合は、例えば「表」を使えば、情報を整理して伝えることができますが、相手がコンピュータの場合、それを厳密なルールに則って記述する必要があります。
JSONは、複雑な構造のデータを、人間にも読みやすく、かつコンピュータにも読みやすい記法の1つとして誕生したものです。ここでは、活用事例のひとつとして、地理情報を記述する GeoJSON についても概説します。
CONTENTS
JSON
データ形式
{
Key:Value,
Key:Value,
:
}
- データはテキスト形式
- 拡張子は .json
書き方の事例
{
"foo": [ 1, null ],
"bar": {
"hoge": [ true, "kos" ] ,
"piyo": "qux"
}
}
Key:キーワード
データを取り出す際に使うキーワードで、ダブルクォーテーション [ ” ] で囲みます(通常の配列では、データの取り出しに「添字」を使います)。
Value:値
JSONには以下の6種類の「値」があります。値は1つとは限らず、複数の値を対応させる場合には [ ] で括った配列を使うこともできます。
- 文字列値(string):任意の情報を"で囲んだ記述。"abc", "def"
- 数値(number):数値をそのまま書いた記述。1, 12.5
- 真偽値(boolean):true , false
- ヌル値(null):値が空
- 配列値(array):複数個の値の並びを表現する記述。[1,2,3]
- オブジェクト値(object):{}や{"foo":"bar"}や{"foo":"bar", "baz":null}など
Member:メンバー
名前(name)と、その名前に対する「値」を、コロン(:)でつないだものをメンバーと呼びます。
- "foo": "hoge"
- "bar":1
- "fuga":[1,2,3]
参考:メタ構文変数
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BF%E6%A7%8B%E6%96%87%E5%A4%89%E6%95%B0
GeoJSON
GeoJSONとは、様々な地理的データをJSON形式でコーディングしたデータでファイルフォーマットです。拡張子は json または geojson。
オブジェクトのタイプ
- ジオメトリオブジェクト(coordinates)
- フィーチャーオブジェクト(geometry, properties)
- フィーチャーコレクションオブジェクト(features)
ジオメトリオブジェクト
富士山頂点の情報を書いた例
{
"type": "Point",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:OGC:1.3:CRS84"
}
},
"coordinates": [138.7309, 35.3628]
}
- type:図形のタイプ
"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "Geometry Collection", "Feature", および"FeatureCollection"のいずれか
- crs:カーソル
- coordinates
経度,緯度,(高度)の順で並べて記載します。
フィーチャーオブジェクト
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}
- type
"Feature" と記載します。
- geometry:
Point(住所や座標)、LineString(各種道路や境界線)、Polygon(国や地域)などの図形をジオメトリオブジェクトとして表現します。
- properties:
その座標に関する情報を定義します。
フィーチャーコレクションオブジェクト
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ ]
},
"properties": { }
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [ ]
},
"properties": { }
}
]
}
フィーチャーオブジェクトをグルーピングした書き方になります。
GeoJSON のデータ
- geojson.io:https://geojson.io/
様々な GeoJSON データが公開されていて、- 地図上のマウス操作で GeoJSON データを出力することができます。
- GeoJSON データ から地図を表示することができます。
- 国土交通省国土政策局国土情報課が提供しているデータ
http://nlftp.mlit.go.jp/ksj/
行政区域データには GeoJSON ファイルがあります。
関連情報
- Geospatial Information Authority of Japan
https://github.com/gsi-cyberjapan
参考:GIS
地理情報システム(GIS:Geographic Information System)とは、地理的位置を手がかりに、位置に関する情報を持ったデータ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術。
- 国土地理院:https://www.gsi.go.jp/GIS/whatisgis.html
- GISオープン教材:https://github.com/gis-oer
- Open Geospatial Consortium:https://www.ogc.org/
