はじめに
G空間情報センターには地理空間情報に関するオープンデータが色々と登録されています。通常はブラウザからデータを検索してダウンロードすることが多いのですが、Project PLATEAUの3D都市モデルや登記所備付地図データなど、全国各地のデータが大量に登録されているようなデータを手動で一つずつダウンロードするのは大変です。その場合スクリプト/プログラムを使って検索&ダウンロードする方法を使うことができます。ここではAPIの呼び出し方の基本を説明します。
API利用マニュアルについて
G空間情報センターにはAPI利用マニュアルが用意されていますが、内容が少し古くなっています。現在(2023年3月)、「2. API キーおよび ID の確認」の部分は変更されているのでご注意ください。
APIの呼び出し方
G空間情報センターのAPI呼び出しに使われるエンドポイントURLは
https://www.geospatial.jp/ckan/api/3/action/
です。このURLにコマンドとパラメータを付加してAPIを呼び出します。レスポンスはJSON形式で返されます。
レスポンスのJSONには help, success, resultというキーが含まれています。success には呼び出しの成功/失敗が true / false で格納されます。result の内容はコマンドによって様々な値が格納されます。
ブラウザでAPIを呼び出してみる
例えば、FirefoxブラウザでAPIを呼び出すと、レスポンスのJSONをデコードして表示することが出来ます。
- JSONの表示機能についてはアドレスフィールドから about:configを開き、devtools.jsonview.enabled の設定で変更することができます。
G空間情報センターに格納されているデータセットには「タグ」が付加されています。まずはtag_listコマンドで、タグの一覧を取得してみます。次のURLをブラウザで開きます。
https://www.geospatial.jp/ckan/api/3/action/tag_list
FirefoxブラウザはレスポンスのJSONをデコードし下記のように表示します。「生データ」タブを選択するとデコードする前のJSONデータをそのまま表示することもできます。
他には、登録されている組織の一覧を取得するorganization_listコマンド、パッケージ(データセット)の一覧を取得するpackage_listコマンドなどがあるので試してみてください。
データセットを検索する
データセットの検索には package_searchコマンドを使います。
例えば、キーワードを'PLATEAU'として最大5件までデータセットを検索するには下記のようなURLを使います。
https://www.geospatial.jp/ckan/api/3/action/package_search?q=PLATEAU&rows=5
Firefoxでは下記の様にJSONが表示されます。result要素の下にあるcountはデータセットが全部で72あることを示しています。resultsには検索されたデータセットの情報(メタデータ)が配列で格納されています。メタデータには様々な情報が格納されていますが、ここでは割愛します。
コマンドラインでAPIを呼び出してみる
curlコマンドでAPIを呼び出し、jqコマンドでJSONを整形して表示してみます。先ほどブラウザで表示されたJSONのデータを取り出すことが出来ました。
% curl -s "https://www.geospatial.jp/ckan/api/3/action/tag_list"| jq .
{
"help": "https://www.geospatial.jp/ckan/api/3/action/help_show?name=tag_list",
"success": true,
"result": [
"ごみ",
"クマ",
"ダム",
"バス",
"OD",
"くらし",
"これで",
"さくら",
"たなか",
"たばこ",
"だいち",
...
]
}
終わりに
簡単なレスポンスを返すAPIコマンドをFirefoxブラウザで呼び出して、JSONを表示する方法を説明しました。またデータセットを検索するコマンドを、curlコマンドで呼び出し、jqコマンドでJSONをデコードしてみました。
入門編はここまで