こんにちは、ミナピピン(@python_mllover)です。
先日GoogleMAPのAPIを触っていて、位置情報を使わずに単語や電話番号で施設情報を検索したいなと思い、ライブラリの関数を調べていると、.find_place() という便利な関数があったのですが、使い方でちょっとハマったのでメモしておきます
初期設定
関連記事:【GCP】GoogleCloudPlatformでプロジェクトを作成してAPI鍵を作成&有効化する
関連記事:【Python】GoogleMapをAPIでスクレイピングして施設の詳細情報を取得する
関連記事:【Python】Google Places APIで20件以上の検索結果を取得する方法
import googlemaps key = '自分のAPI鍵' # 上記で作成したAPIキーを入れる client = googlemaps.Client(key) #インスタンス生成
電話番号でGoogle MAP上の施設情報を検索する
r = client.find_place('+81 '+ <xxx-xxxx-xxxx>, 'phonenumber',language='ja') #電話番号で位置IDを検索 print(client.place(place_id=r['candidates'][0]['place_id'],language='ja'))
電話番号で検索する際は頭に国を識別する+081 を付けないといけないみたいです。最初これが分からなくて「INVALID_REQUEST」エラーを吐きまくって気がげんなりしました。
単語情報から施設情報を検索する
単純に単語から施設情報を検索する際はinput_typeを’textquery’に切り替えるだけです。idが取得できたらあとは.place
で詳細を取得するだけです。
r = client.find_place('澪標アナリティクス', 'textquery',language='ja') #電話番号で位置IDを検索 print(client.place(place_id=r['candidates'][0]['place_id'],language='ja'))
コメント