頭痛仲間というアプリを作るときに、
気圧とかの天気情報を取得したいなと思い、
OpenWeatherMap APIを調べたときの備忘録。
シンプルだし、無料枠もあるのでよい感じだった。
OpenWeatherMapについて
現在の天候や予測履歴を含む各種気象データのAPIを提供してくれるサービス。
APIの種類も多くあるが、無料版だと制限があるので注意。
無料版だと、One Call APIだけっぽい感じ。
また、API呼び出しは、 1分に60回、1ヶ月に100万回まで。
1日に1000回、1ヶ月に30000回だった。。One Call APIの制限は少なめ。
・Detailed price - OpenWeatherMap
One Call APIでは、以下の情報を取得できる
- 現在の天候
- 1時間後までの、1分毎の予測
- 2日後までの、1時間毎の予測
- 7日後までの、1日毎の予測
- 5日前までの天候
アカウント作成
APIを利用するにはアカウントが必要なので、まずはアカウント作成
・Sign Up | OpenWeatherMap
アカウントを作成するとAPI Keyを作成できるようになる
・API Key | OpenWeatherMap
One Call APIの使い方
ドキュメントがわかりやすいので、こちらを参考に。
現在の天気と予測の取得(Current and forecast weather data)
APIの形式は以下の通り。
位置情報(latitude, longitude
)とAPI Keyが必須。
https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude={part}&appid={API key}
レスポンスは、こんな感じ。
{ "lat": 40.12, "lon": -96.66, "timezone": "America/Chicago", "timezone_offset": -18000, "current": { // 現在の天候 }, "minutely": [ // 1分ごとの予報 }, "hourly": [ // 1時間ごとの予報 ], "daily": [ // 1日ごとの予報 ], "alerts": [ // アラート情報 ] }
現在の天候(current)
"current": { "dt": 1595243443, // 時刻 "sunrise": 1595243663, // 日の出時刻 "sunset": 1595296278, // 日の入時刻 "temp": 293.28, // 気温(ケルビン) "feels_like": 293.82, // 体感気温(ケルビン) "pressure": 1016, // 気圧 "humidity": 100, // 湿度 "dew_point": 293.28, // 露点温度(ケルビン) "uvi": 10.64, // UV指数 "clouds": 90, // 雲量(%) "visibility": 10000, // 視界(m) "wind_speed": 4.6, // 風速 "wind_deg": 310, // 風向き(北=0, 東=90, 南=180, 西=270) "weather": [ // 天気情報 { "id": 501, // 天気ID "main": "Rain", "description": "moderate rain", "icon": "10n" }, { "id": 201, "main": "Thunderstorm", "description": "thunderstorm with rain", "icon": "11n" } ], "rain": { "1h": 2.93 // 過去1時間の雨量(mm) } },
weather
については、以下のページに詳細が記載されている。
・Weather Conditions - OpenWeatherMap
他のminutely
、hourly
なども同様の情報を含んでる感じ。
Fields in API responseに詳細が記載されている。
温度関係は全部ケルビンで記載されるので、摂氏(℃)への変換が必要。
変換は以下の感じで、273.15
引けばOK
℃ =K - 273.15
以上!!
頭痛仲間をリリースしました!
かわいいネコいっぱいの頭痛特化体調管理アプリです! よかったらぜひぜひ〜(´ω`)
▼頭痛仲間 http://zutsuu.memory-lovers.com/