超高速開発ツール”Wagby”で端末の位置情報を使って天気を自動的に記録する

今回は、前回作成した位置情報を取得する機能を利用して、その場所の天気を自動的に記録する機能を追加してみます。

 

超高速開発ツール”Wagby”で利用者の位置情報をアプリケーションログに出力する
超高速開発ツール"Wagby"で位置情報(緯度・経度)をJavascriptで取得して、ログ(system.log)に出力する方法について説明します。

 

OpenWeatherMapのAPIキーを取得する

天気のデータを取得するために、”OpenWeatherMap“を使います。OpenWeatherMapが提供しているAPIを使うためには、ユーザー登録したうえでOpenWeatherMapのAPI Keyを取得する必要があります。無料のプランをはじめとしていろいろとプランがありますが、今回は無料のプランで実験してみます。

 

Weather API - OpenWeatherMap
Simple and fast and free weather API from OpenWeatherMap you have access to current weather data, 5- and 16-day forecasts, UV Index, air pollution and historic...

 

まずはアカウントを登録します。

f:id:cycle8b:20170331131457p:plain

アカウントを登録すると、マイページ的な画面にAPI Keyが表示されます。

f:id:cycle8b:20170331131819p:plain

OpenWeatherMapのAPIを試してみる

API Keyを使って現在の天気を取得します。緯度・経度から、その地点の現在の気象情報を取得する場合には、次のようなURLで取得できます。

http://api.openweathermap.org/data/2.5/weather?lon={経度}&lat={緯度}&APPID={OpenWeatherMapのAPIKey}

詳しい使い方は↓をご確認ください。

 

Current weather data - OpenWeatherMap
Access current weather data for any location on Earth. Current weather is frequently updated based on global models and data from more than 40,000 weather stati...

 

 

2017-04-02 追記) パラメータの”緯度(latitude)“と”経度(longitude)”が逆だったので修正しました。毎回、どっちがどっちか、分からなくなってしまう・・・。

緯度、経度、latitude、longitude…どれがなんだっけ? - ぱせらんメモ
緯度、経度、latitude、longitude……どれがどれだかよくわからなくなるのでこうやって覚えた。 緯度 いど ..

 


試しにこのURLをブラウザのアドレスバーに貼り付けてアクセスすると、次のような結果が得られます。(画像は、東京 丸の内の気象情報を取得した結果です。)
f:id:cycle8b:20170331164327p:plain

結果がJSON形式で返ってくるので、これをWagbyで読み込み&編集して、DBに保存します。

Wagbyに都市名と天気を保存する項目を追加する

前回作成した投稿モデルには、DBに保存しない隠し項目緯度経度が追加されています。今回はこれに、都市名天気を追加します。それぞれ、次のような型で作成します。

項目名項目ID型の詳細
都市city_name文字列文字列
天気weather文字列文字列

APIで取得した値を、登録時の初期値に設定する。

都市天気登録時の初期値として、それぞれの項目に式を設定します。(APPIDはご自身のAPI Keyを指定してください。)

f:id:cycle8b:20170331184452p:plain

都市

JSONPATH(
HTTPSEND(
CONCATENATE("http://api.openweathermap.org/data/2.5/weather?lon="
, TOSTR(${longitude})
, "&lat="
, TOSTR(${latitude})
, "&APPID=84xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
), "name"
)

天気

JSONPATH(
HTTPSEND(
CONCATENATE("http://api.openweathermap.org/data/2.5/weather?lon="
, TOSTR(${longitude})
, "&lat="
, TOSTR(${latitude})
, "&APPID=84xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
), "weather[0]['description']"
)

ビルド&確認

投稿を保存すると・・・
f:id:cycle8b:20170331181826p:plain

都市・天気が保存され、一覧に表示されています。
f:id:cycle8b:20170331184337p:plain

http://d.hatena.ne.jp/m-hiyama/20090715/1247622741

 

Recommended
超高速開発ツール"W…