Geocoding APIとAlteryxで住所から位置情報を可視化する
アルテリックス?アルタリクス?どちらでもわたしは一向にかまわんッッ!の國崎です。
今回は「Google Geocoding API」というAPIを使って住所から緯度経度を抽出し、それをAlteryxの「ポイント作成」で可視化するということをやってみました。
これができると住所さえわかればAlteryxで位置情報の可視化ができる! ってことで以下ご紹介します。
前提条件
- Google Cloudのプロジェクト作成済
- Google Cloudの支払い登録済
上記のことはやってる方前提の記事になりますので、この辺出来てない方は調整しておきましょう。
Google Maps Geocoding APIキーの取得
まずGoogle Maps GeocodingのAPIキーを取得します。 APIキーの取得は【Geocoding API: API キーの取得】で行います。
既に前提条件が済んでいる方はページ中ほどの「API キーを取得する」まで移動します。
そこに書いてある以下の手順通りに進めていくとAPIキーの取得ができます。
取得する過程でAPIキーはコピーすることができるので、忘れずに保管しておくようにします。
もし忘れてしまった方は上記の「認証情報ページに移動」の「鍵と認証情報」から「鍵を表示します」をクリックすればAPIキーの確認ができます。
APIキーを取得したらAPIライブラリ内にある「Geocoding API」を有効にしておきます。
上記の作業が完了したらAlteryxで早速操作をしてみます。
Alteryxでやってみた
住所データを取り込む
今回サンプルで以下の住所データを用意しました。
東京都新宿区桜通り1-2-3 大阪府北区梅田5-6-7 神奈川県横浜市中区海岸通2丁目4番 北海道札幌市中央区雪が丘11-12-13 愛知県名古屋市星ヶ丘14丁目15-16 福岡県福岡市太宰府道17-18-19 京都府京都市桜花道20丁目21番22号 広島県広島市平和大通り23-24-25 宮城県仙台市杜の都26丁目27番28 沖縄県那覇市首里石嶺29-30-31
フォーミュラでリクエストURLを生成
フォーミュラをつないでGeocoding APIにリクエストするURLの形式を生成します。
フォーミュラには以下の式を入れます。
今回の住所データが入っているカラム[住所]とGeocoding API取得で保管したAPIキーをパラメータでつけます。
'https://maps.googleapis.com/maps/api/geocode/json?address='+[住所]+'&key=[APIキー]'
実行すると以下の感じでリクエストURLのカラムが追加されました。
ダウンロードでリクエストしたデータを取得
ダウンロードをつないでリクエストしたデータを取得します。
ダウンロードでは設定内のタブごとに以下の調整をします。
基本設定
フィールドにはフォーミュラで生成するカラムのフィールドを設定します。
ヘッダー
ヘッダーには以下設定をします。
Content-Type:application/json Authorization:Bearer APIキー
ペイロード
接続
接続ではGoogle Cloudで利用しているアカウントのユーザー名とパスワードを設定します。
ダウンロードの設定は以上です。
上記設定で実行すると以下の結果が得られます。
結果画面だとわかりづらいですがDownloadDataのカラムに緯度経度が入っているjsonデータがありますので、これを次のツールで分解していきます。
JSONパースでデータを分解する
JSONパースをつないでDownloadDataのカラムにあるjsonデータを分解します。
JSONフィールドを「DownloadData」に指定し「単一の文字列フィールドに値を出力する」を選択します。
実行するとJSONにあるデータがレコードに分解されて出力されます。
次のツールでこの中から緯度経度のレコードを抽出していきます。
フィルターをつないで緯度経度を抽出
フィルターをつないで緯度と経度のフィールドのみを抽出します。
カスタムフィルターに以下の記述を書きます。
[JSON_Name]="results.0.geometry.location.lat" OR [JSON_Name]="results.0.geometry.location.lng"
クロスタブで緯度経度を1レコードにする
クロスタブをつないで各レコード単位になっている緯度と経度を1レコードにします。
クロスタブの設定は以下です。
ポイント作成で座標をつける
ポイント作成をつなげて、Xフィールドに経度、Yフィールドに緯度をつけます。
実行すると座標データ(Centroid)が全ての住所につきました。
閲覧をつなげてAlteryxのマップで可視化すると、それぞれの位置情報が可視化できました。
まとめ
以上の手順を実行すると「Google Geocoding API」と「Alteryx」を使えば住所データからでも簡単に位置情報が可視化できます。
注意点としては「Google Geocoding API」は毎月200ドルの無料利用枠がありますが、超過分は料金が発生することを念頭に使用しましょう。