無料天気予報OpenWeatherMapAPIをPHP取得&使い方
OpenWeatherMap とは
OpenWeatherMapは、現在の天気や天気予報などの無料APIを提供するオンラインサービスです。
APIキーを取得する
アカウント登録
OpenWeatherMapにアクセスしてサインアップします。
APIキーを取得
ログイン後のメニューに表示されているAPI Keysを選択すると、APIキーが表示されています。
OpenWeatherMapのAPIを叩く
URLを叩けば取得できます。適切に下記の値を変更してください。
{LAT}
= 緯度
{LON}
= 経度
{YOUR API KEY}
= 取得したAPIキー
https://api.openweathermap.org/data/2.5/onecall?lat={LAT}&lon={LON}&units=metric&lang=ja&appid={YOUR API KEY}
レスポンス内容の例)
{
"lat": 000000,
"lon": 000000,
"timezone": "Asia/Tokyo",
"timezone_offset": -32400,
"current": {
"dt": 1604643808,
"sunrise": 1604598892,
"sunset": 1604626793,
"temp": -22.39,
"feels_like": -29.04,
"pressure": 1016,
"humidity": 100,
"dew_point": -22.39,
"uvi": 0.29,
"clouds": 100,
"visibility": 105,
"wind_speed": 4.26,
"wind_deg": 212,
"weather": [
{
"id": 601,
"main": "Snow",
"description": "雪",
"icon": "13n"
}
],
"snow": {
"1h": 0.72
}
},
"hourly": [
{
...(略)...
},
...(略)...
{
...(略)...
}
],
"daily": [
{
...(略)...
},
...(略)...
{
...(略)...
}
]
"alerts": [
{
...(略)...
}
]
}
主に使う値
- 時刻: dt
- 日の出: sunrise
- 日没: sunset
- 温度: temp
- 体感温度: feels_like
- 気圧: pressure
- 湿度: humidity
- UV指数: uvi
- 風速: wind_speed
- 風の向き: wind_deg
- 気象情報: weather.main
- 気象情報の詳細: weather.description
- 気象情報のアイコンID: weather.icon
- 降水量: rain.1h
- 降雪量: snow.1h ※積雪ではないので要注意
画像アイコン
10n
の部分をweather.iconで取得したアイコン名に変更するだけ
https://openweathermap.org/weather-conditions
<img src="https://openweathermap.org/img/wn/[email protected]">
PHPで取得
$weather_config = array(
'appid' => '○○○○○○○○○○○○○○○',
'lat' => '63.027139',
'lon' => '-150.941425',
);
$weather_json = file_get_contents('http://api.openweathermap.org/data/2.5/weather?lat=' . $weather_config['lat'] . '&lon=' . $weather_config['lon'] . '&units=metric&lang=ja&APPID=' . $weather_config['appid']);
$weather_array = json_decode($weather_json, true);
$weather_config = array(
'appid' => '○○○○○○○○○○○○○○○',
'lat' => '63.027139',
'lon' => '-150.941425',
);
$weather_json = file_get_contents('http://api.openweathermap.org/data/2.5/weather?lat=' . $weather_config['lat'] . '&lon=' . $weather_config['lon'] . '&units=metric&lang=ja&APPID=' . $weather_config['appid']);
$weather_array = json_decode($weather_json, true);
weather.mainは英語しかないので日本語訳はこちらを使ってください。(自作なので適当に直してください)
$weatherTranslate = array(
'Clear' => '晴れ',
'Clouds' => 'くもり',
'Rain' => '雨',
'Drizzle' => '霧雨',
'Thunderstorm' => '雷雨',
'Snow' => '雪'
);
温度を四捨五入する
round($weather_array['main']['temp'], 1);
降雪量のmmをcmに変換
$weather_array['snow']['1h'] * 0.1;
パラメーターオプション
オフィシャルリファレンス
https://openweathermap.org/current
主に使うパラメーター
単位 ( &units=metric
)
測定単位(任意)
standard、metricおよびimperialユニットが利用可能です。unitsパラメータを使用しない場合、デフォルトはstandardです。
「units=metric」で摂氏温度(℃)の取得ができます。
これがないと絶対温度(K)になるので、取得した数値から「-273.15」する必要があります。
利用可能値:standard
, metric
, imperial
デフォルト:standard
モード ( &mode=json
)
レスポンス形式(任意)
可能な値はjson、xmlおよびhtml。modeパラメータ形式を使用しない場合、デフォルトはjsonです。
利用可能値:json
, xml
, html
デフォルト:json
多言語 ( &lang=ja
)
言語形式(任意)
このパラメーターを使用して、ご使用の言語で出力を取得できます。
利用可能値:
-
af
アフリカーンス語 -
al
アルバニア語 -
ar
アラビア語 -
az
アゼルバイジャン -
bg
ブルガリア語 -
ca
カタロニア語 -
cz
チェコ語 -
da
デンマーク語 -
de
ドイツ人 -
el
ギリシャ語 -
en
英語 -
eu
バスク -
fa
ペルシア語(ペルシア語) -
fi
フィンランド語 -
fr
フランス語 -
gl
ガリシア語 -
he
ヘブライ語 -
hi
ヒンディー語 -
hr
クロアチア語 -
hu
ハンガリー語 -
id
インドネシア語 -
it
イタリアの -
ja
日本人 -
kr
韓国語 -
la
ラトビア語 -
lt
リトアニア語 -
mk
マケドニアの -
no
ノルウェー語 -
nl
オランダの -
pl
研磨 -
pt
ポルトガル語 -
pt_br
ポルトガル語ブラジル -
ro
ルーマニア語 -
ru
ロシア -
sv, se
スウェーデンの -
sk
スロバキア -
sl
スロベニア語 -
sp, es
スペイン語 -
sr
セルビア語 -
th
タイ語 -
tr
トルコ語 -
ua, uk
ウクライナ語 -
vi
ベトナム語 -
zh_cn
中国語(簡体字 -
zh_tw
中国の伝統的な -
zu
ズールー
デフォルト:en
JavaScriptコードのコールバック関数
JavaScriptコードを使用するには、callback
functionNameをJSONのコールバックに転送できます。
https://api.openweathermap.org/data/2.5/weather?q=London,uk&callback={TEST}&appid={YOUR API KEY}
各アカウント制限
無料アカウント
60コール/分
1,000,000コール/月
参考サイト
https://qiita.com/nownabe/items/aeac1ce0977be963a740
https://hsmt-web.com/blog/openweathermap-api/
https://dev.classmethod.jp/articles/use-open-weather-map/
https://yuukiyg.hatenablog.jp/entry/2019/11/17/182410
Author And Source
この問題について(無料天気予報OpenWeatherMapAPIをPHP取得&使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/thiagomatsui/items/ab923c1fcd6694f6e5bb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .