Help us understand the problem. What is going on with this article?

OpenWeatherMapから気象情報を取得する

More than 3 years have passed since last update.

世界中の気象情報を取得でき、商用利用も可能なWebサービス「OpenWeatherMap」の利用手順を記します。

アカウントの作成

OpenWeatherMapサイトの「SignUp」ページで新しいアカウントを作成します。
次の情報を入力して「Create Account」ボタンをクリックしてください。

  • ユーザ名
  • 電子メールアドレス
  • パスワード

スクリーンショット 2015-11-14 3.06.16.png

APIキーの取得

アカウントが作成されると自身の設定画面が表示されます。
そこに記載されている「API key」が利用可能なキー文字列となります。

Freeプランの制限について

自アカウントの設定画面にある「My Services」をクリックすると、気象情報を取得する際の上限が表示されます。
「10分間に600回」かつ「1日あたり50,000回」のアクセスがFreeプランの上限のようです。

スクリーンショット 2015-11-14 3.27.38.png

気象情報の取得

気象情報を取得する際のオプションは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例は次の通り。(気温は「摂氏」)

http://api.openweathermap.org/data/2.5/find?q=Sapporo-shi,jp&units=metric&APPID=(ここにAPIキー文字列を指定してください)

情報は 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でアイコン画像をダウンロードできます。

http://openweathermap.org/img/w/04n.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした