- 追加された行はこの色です。
- 削除された行はこの色です。
- JSON へ行く。
#author("2021-12-01T12:56:25+09:00;2021-12-01T12:54:27+09:00","default:inoue.ko","inoue.ko")
*JSON
JavaScript Object Notation
~
JSONとは、データを key とvalue の組み合わせで記述する連想配列のひとつで、データを記述する方法は無限にあります。相手が人間の場合は、例えば「表」を使えば、情報を整理して伝えることができますが、相手がコンピュータの場合、それを厳密なルールに則って記述する必要があります。
JSONは、複雑な構造のデータを、人間にも読みやすく、かつコンピュータにも読みやすい記法の1つとして誕生したものです。ここでは、活用事例のひとつとして、地理情報を記述する GeoJSON についても概説します。
~
***CONTENTS
#contents2_1
~
**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
&aname(GeoJSON);
~
~
**GeoJSON
GeoJSONとは、様々な地理的データをJSON形式でコーディングしたデータでファイルフォーマットです。拡張子は ''json'' または ''geojson''。
-https://geojson.org/
-https://geojson.io/
~
***オブジェクトのタイプ
-ジオメトリオブジェクト(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 ファイルがあります。
~
***関連情報
-GIS実習オープン教材
https://gis-oer.github.io/gitbook/book/materials/web_gis/GeoJSON/GeoJSON.html
-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/
//ちなみに [[GISファイル>Google:GISファイル]]形式は、Open Geospatial Consortium が開発していますが、GeoJSONは、世界各地の開発者が開発し管理しています。
~
~