世界中の気象情報を取得でき、商用利用も可能なWebサービス「OpenWeatherMap」の利用手順を記します。
##アカウントの作成
OpenWeatherMapサイトの「SignUp」ページで新しいアカウントを作成します。
次の情報を入力して「Create Account」ボタンをクリックしてください。
- ユーザ名
- 電子メールアドレス
- パスワード
##APIキーの取得
アカウントが作成されると自身の設定画面が表示されます。
そこに記載されている「API key」が利用可能なキー文字列となります。
##Freeプランの制限について
自アカウントの設定画面にある「My Services」をクリックすると、気象情報を取得する際の上限が表示されます。
「10分間に600回」かつ「1日あたり50,000回」のアクセスがFreeプランの上限のようです。
##気象情報の取得
気象情報を取得する際のオプションはURLパラメータで指定します。
####取得形式
パラメータ名: mode
値 | 意味 |
---|---|
(省略時) | JSON形式で取得 |
xml | XML形式で取得 |
html | HTML形式で取得 |
####温度単位
パラメータ名: units
値 | 意味 |
---|---|
(省略時) | ケルビン |
metric | 摂氏 |
imperial | 華氏 |
###指定地点の気象情報の取得
####都市名での取得
パラメータ名: q={都市名},{国コード(ISO3166)}
指定例: q=Sapporo-shi,jp
####都市IDでの取得
パラメータ名: id={都市ID}
指定例: id=2128295
都市名で曖昧検索するよりもID値で明確に指定する方式が推奨されています。
こちらから都市一覧「city.list.json.gz」をダウンロードしてください。
####緯度・経度での取得
パラメータ名: lat={緯度}&lon={経度}
指定例: lat=43.064171&lon=141.346939
正確な座標でない場合、近似地点の気象情報が返却されます。
###取得例
取得したAPIキーを用いて、札幌市の気象情報を取得してみます。
都市名を指定して問い合わせる場合のURL例は次の通り。(気温は「摂氏」)
情報は JSON形式の文字列 の形で取得できます。
{"message":"accurate","cod":"200","count":1,"list":
[{"id":2128295,
"name":"Sapporo-Shi",
"coord":{"lon":141.35,"lat":43.058},
"main":{"temp":5,"pressure":1030,"humidity":80,"temp_min":5,"temp_max":5},
"dt":1447435800,
"wind":{"speed":5.1,"deg":150},
"sys":{"country":"Japan"},
"clouds":{"all":75},
"weather":
[{"id":803,
"main":"Clouds",
"description":"broken clouds",
"icon":"04n"
}]
}]
}
Freeプランでの気象データの更新間隔は「1〜2時間」なので、急激な天候の変化には追従できないかもしれません。
その場合は更新間隔の短い Developerプラン などへの変更を検討すべきでしょう。
(もちろん金銭的に余裕がある場合に限りますが)
##アイコン画像の取得
weather:icon の"04n"は気象アイコンのファイル名です。
次のURLでアイコン画像をダウンロードできます。