Googleが提供しているAPIを使えば緯度・経度の情報を取得することが可能です。一般的にAPI利用は何らかのアプリ開発を伴うものですが、ここではExcelを使ってノンプログラミングで実現する方法をご紹介します。
GoogleマップのAPIキーの取得
まずはじめにGoogle Maps PlatformのAPIキーを取得する必要があります。
なお、今回作成したレポートサンプルのように、GoogleマップをYellowfinに組み込む場合にもこのAPIキーが必要になります。
APIキーを取得する具体的な手順は以下のサイトを参考にしてください。
上記サイトでは「Maps JavaScript API」を選択していますが、今回の例では「Geocoding API」を選択してください。
Excelファイルの作成
項目名の記入
わかりやすいように、1行目に以下の項目を入力します。
- 住所
- URL
- XML
- 緯度
- 経度
- 状態
住所の入力
A列に住所を入力します。
URLの入力
B2のセルに ="https://maps.googleapis.com/maps/api/geocode/xml?address="& A2&"key=[GoogleのAPIキー]
と入力します。
[GoogleのAPIキー]の箇所には、最初の手順で取得したAPIキーを入れてください。
XMLを取得
C2のセルに=WEBSERVICE(B2)
と入力します。
これはB2のURLにアクセスしてデータを取得する関数です。成功しているとC2のセルにはXMLの文字が長々と入っていると思います。
緯度を取得
D2のセルに=FILTERXML(C2,"//location/lat")
と入力します。
先ほど取得したC2のセルにあるXMLのデータから、locationタグ>latタグにある緯度を抽出しています。
経度を取得
E2のセルに=FILTERXML(C2,"//location/lng")
と入力します。上記と同様にして経度を取得しています。
ジオコーディングの状態を表示
F2のセルに=FILTERXML(C2,"//status")
と入力します。
「OK」が入っていれば正常に緯度・経度が取得できています。エラーが発生している場合はエラーコードが返ってきます。コードの詳細は以下をご参照ください。
セルのコピー
他の行にもコピーすれば自動的にデータが埋まります。
注意点
このように、Excelで簡単に緯度・経度を取得することが可能ですが、実際に使用するにあたっては以下の注意点があります。
まず、大量のデータを取得すると費用が発生します。Google Maps Platformには1か月200ドルの無料枠がありますが、Geocoding APIの場合、40,000回を超えると費用が発生してしまうようです(2019/11/29現在)。詳しくは以下をご参照ください。
また、上記のExcelではURLとXMLが見えてしまっているのも好ましくありません。特にAPIキーが丸見えになっているのは問題です。業務で活用する際には、URLとXMLの列を非表示にしたうえで、Excelのセキュリティでパスワードを設定する等の対策を取る必要があります。
最後に、Windows版のOffice 2013以降のExcelでしか動作しません。それ以前のバージョンやMac版は不可となっています。