1 Google Maps APIを用いたGeocoding

 ここではGoogle Maps APIを用いたGeocodingについて解説します。Google Maps APIでは、様々なサービスが提供されており、様々な空間情報を得ることができます。主な機能として「マップ」、「ルート」、「プレイス」があります。「マップ」はGoogleマップの様々な機能、「ルート」は道路ネットワークを使用した機能、「プレイス」は場所に関連する様々な機能となります。これに加えて、2023年からEnvironment API 群が公開されました。それぞれの主な具体的な機能は下記のサイトなどを参照ください。
> https://www.zenrin-datacom.net/solution/gmapsapi/function#function_environment

2 Google Maps Platform

 Google Maps APIの機能を利用するためには、まずGoogle Maps Platformに登録する必要があります。※Googleアカウントを持っていない場合は、Googleアカウントの登録から始めてください。

2.1 Google Maps Platformに登録

 では、Google Maps Platformに登録するところから始めてみましょう。下記のULRよりGoogle Maps Platformにアクセスしてください。

Google Maps Platform https://mapsplatform.google.com/intl/ja/

 次に「使ってみる」をクリックし、「アカウント設定を完了」からアカウントの設定を行います。ここで、お支払い情報を入力する必要があるため、クレジットカードの情報を事前に用意しておいてください。ただし、利用開始したからといってすぐに支払いが発生するわけではなく、1 か月あたりの無料利用枠として$200が与えられているため、この金額を超えない限り無料で利用できます。今回使用するGeolocation APIは1000件あたり$5なので、40,000件までは無料となります(2024年5月5日現在)。料金については、下記のURLを参照してください。

 登録画面を進めていくと、「自分のAPIキー」が提供されるので、これをテキストなどで保存しておいてください。また、「このプロジェクトですべてのGoogle Maps APIを有効にします」に必ずチェックしてください。さらに、「Googleマップの1か月のクレジット($200)を超えそうなときに通知を受け取る」にもチェックをしておくと安心です。

料金について https://mapsplatform.google.com/pricing/?hl=ja

**Google Maps Platform トップ画面**

Figure 2.1: Google Maps Platform トップ画面

**アカウントの登録1**

Figure 2.2: アカウントの登録1

**アカウントの登録2**

Figure 2.3: アカウントの登録2

**APIキー**

Figure 2.4: APIキー

2.2 APIの有効化

 Google Maps Platformへの登録が完了したら、まずはプロジェクトを作ってみましょう。デフォルトでMy Maps Projectという名前のプロジェクトが作成されますので、新しく作る必要がない人は、こちらのプロジェクトを使ってもらっても構いません。左上のプロジェクトを選択から、「新しいプロジェクト」を選択してください。プロジェクト名は「Geocodeing」として作成してください。次にAPIを有効にしますが、「このプロジェクトですべてのGoogle Maps APIを有効にします」にチェックを入れていれば、すでに有効化は完了しています。もし有効化が出来ていなければ、概要欄からAPIを有効化してください。

3 PythonによるGeocoding (Google Colaboratoryを用いた例)

 Pythonを用いてGeocodingを行っていきます。ここでは、Google Colaboratoryを用いた演習を行います。Google Colaboratoryとは、Googleが提供しているブラウザからPythonが実行できるサービスです。Googleのアカウントさえあれば、簡単にどこからでもPythonを実行できます。さらにGoogleドライブの共有機能を使えば、簡単に他ユーザーと共有することも可能です。

3.1 ノートブックの作成

   では早速、Google Colaboratoryを使っていきます。まずは、Googleのアカウントにログインしたうえで、Google Colaboratoryにアクセスしてください。次に、トップ画面のメニューバーから「ファイル」→「ドライブの新しいノートブック」を選択してください。新しいノートブックが開けたら、分かりやすいように、ノートブックの名前を変えておきましょう。
 Pythonではコードセルという場所から指示を実行させます。まず、「+コード」からコードセルを追加してください。追加されたらセルにコードを記述し、右の実行ボタンをクリックすると、セル内の指示が実行されます。  
Google Colaboratoryのトップ画面

Figure 3.1: Google Colaboratoryのトップ画面

新しいノートブック

Figure 3.2: 新しいノートブック

3.2 Geocodingの実行

   今回は、港区にある大学の住所情報をもとに緯度経度を付与していきます。まず、Google Maps APIのモジュールであるgooglemapsをインストールし、呼び出します。

#pip install googlemaps

#import pandas as pd
#import googlemaps

次に、演習用データである「大学住所.csv」をファイルに追加します。追加する方法は、左側のファイルマークをクリックし、開かれたサイドバーにドラッグ&ドロップするだけで簡単に追加できます。データが追加出来たら、pythonに読み込みます。読み込めたら、変数名をアルファベットに変えておきます。

#df = pd.read_csv("大学住所.csv")
#df

#df = pd.read_csv("大学住所.csv")
#df = df.rename(columns = {"住所": "address","大学名": "university_name" })
#df.head()
データの追加

Figure 3.3: データの追加

ここまで出来れば、あとは先ほど取得した自分のAPIキーを入力し、ループ関数ですべての住所情報に緯度経度を付与していきます。

#MAPS_API_KEY = '自分のAPI_KEYを入力する' 

#def geocode(address):
    #try:
        #gmaps = googlemaps.Client(key=MAPS_API_KEY)
        #result = gmaps.geocode(address)
        #lat = result[0]['geometry']['location']['lat']
        #lng = result[0]['geometry']['location']['lng']

        #return lat, lng
    #except:
        #print("error")
        #return None, None

問題なく緯度経度が付与されていれば、これをエクセルでエクスポートして終わりです。

#df.to_excel("大学住所_xy.xlsx", index=None)