Geocoding APIとAlteryxで住所から位置情報を可視化する

Google Geocoding APIとAlteryxを使って住所データから位置情報を出す手順です。
2024.02.09

アルテリックス?アルタリクス?どちらでもわたしは一向にかまわんッッ!の國崎です。

今回は「Google Geocoding API」というAPIを使って住所から緯度経度を抽出し、それをAlteryxの「ポイント作成」で可視化するということをやってみました。

これができると住所さえわかればAlteryxで位置情報の可視化ができる! ってことで以下ご紹介します。

前提条件

  • Google Cloudのプロジェクト作成済
  • Google Cloudの支払い登録済

上記のことはやってる方前提の記事になりますので、この辺出来てない方は調整しておきましょう。

Google Maps Geocoding APIキーの取得

まずGoogle Maps GeocodingのAPIキーを取得します。 APIキーの取得は【Geocoding API: API キーの取得】で行います。

既に前提条件が済んでいる方はページ中ほどの「API キーを取得する」まで移動します。
そこに書いてある以下の手順通りに進めていくとAPIキーの取得ができます。
Alteryx20240209-01

取得する過程でAPIキーはコピーすることができるので、忘れずに保管しておくようにします。
もし忘れてしまった方は上記の「認証情報ページに移動」の「鍵と認証情報」から「鍵を表示します」をクリックすればAPIキーの確認ができます。
Alteryx20240209-02

APIキーを取得したらAPIライブラリ内にある「Geocoding API」を有効にしておきます。
Alteryx20240209-03

上記の作業が完了したら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

こちらのデータをAlteryxのワークフローに入力します。
Alteryx20240209-04

フォーミュラでリクエストURLを生成

Alteryx20240209-05

フォーミュラをつないでGeocoding APIにリクエストするURLの形式を生成します。
フォーミュラには以下の式を入れます。
今回の住所データが入っているカラム[住所]とGeocoding API取得で保管したAPIキーをパラメータでつけます。

'https://maps.googleapis.com/maps/api/geocode/json?address='+[住所]+'&key=[APIキー]'

実行すると以下の感じでリクエストURLのカラムが追加されました。
Alteryx20240209-06

ダウンロードでリクエストしたデータを取得

Alteryx20240209-07

ダウンロードをつないでリクエストしたデータを取得します。
ダウンロードでは設定内のタブごとに以下の調整をします。

基本設定

フィールドにはフォーミュラで生成するカラムのフィールドを設定します。

ヘッダー

ヘッダーには以下設定をします。

Content-Type:application/json
Authorization:Bearer APIキー

ペイロード

ペイロードでは「クエリ文字列/本文を作成」を選択します。
Alteryx20240209-09_2

接続

接続ではGoogle Cloudで利用しているアカウントのユーザー名とパスワードを設定します。
Alteryx20240209-11

ダウンロードの設定は以上です。
上記設定で実行すると以下の結果が得られます。
Alteryx20240209-13

結果画面だとわかりづらいですがDownloadDataのカラムに緯度経度が入っているjsonデータがありますので、これを次のツールで分解していきます。
Alteryx20240209-14

JSONパースでデータを分解する

Alteryx20240209-12

JSONパースをつないでDownloadDataのカラムにあるjsonデータを分解します。
JSONフィールドを「DownloadData」に指定し「単一の文字列フィールドに値を出力する」を選択します。
Alteryx20240209-15

実行するとJSONにあるデータがレコードに分解されて出力されます。
Alteryx20240209-16

次のツールでこの中から緯度経度のレコードを抽出していきます。

フィルターをつないで緯度経度を抽出

Alteryx20240209-17

フィルターをつないで緯度と経度のフィールドのみを抽出します。
カスタムフィルターに以下の記述を書きます。

[JSON_Name]="results.0.geometry.location.lat"
OR
[JSON_Name]="results.0.geometry.location.lng"

実行するとこんな感じで出力されます。
Alteryx20240209-18

クロスタブで緯度経度を1レコードにする

Alteryx20240209-19

クロスタブをつないで各レコード単位になっている緯度と経度を1レコードにします。
クロスタブの設定は以下です。 Alteryx20240209-20

実行すると住所と緯度と経度のカラムのみになります。
Alteryx20240209-21

ポイント作成で座標をつける

Alteryx20240209-22

ポイント作成をつなげて、Xフィールドに経度、Yフィールドに緯度をつけます。
Alteryx20240209-23

実行すると座標データ(Centroid)が全ての住所につきました。
Alteryx20240209-24

閲覧をつなげてAlteryxのマップで可視化すると、それぞれの位置情報が可視化できました。
Alteryx20240209-25

まとめ

以上の手順を実行すると「Google Geocoding API」と「Alteryx」を使えば住所データからでも簡単に位置情報が可視化できます。
注意点としては「Google Geocoding API」は毎月200ドルの無料利用枠がありますが、超過分は料金が発生することを念頭に使用しましょう。

料金プランと API の費用 - Google Maps Platform