久しぶりにDrupalでGeocoderを使ってハマった

hagi に投稿

Drupal備忘録。

冬のDrupal本の執筆の下準備で、GeofieldモジュールGeocoderモジュールをセットアップした。

Geofieldモジュールは、緯度、経度からなるフィールドを定義するもので、それ自身は単純なのだが、表示用のGeofield Mapモジュールを使うと、Google Mapを利用した表示が可能になるなどなかなか便利なものだ。Geocoderの方は、住所などのテキストから、緯度、経度を特定できるのもので、これを導入するとテキストフィールドやAddressフィールドから緯度経度が特定できるようになる。GoogleのAPIを使うので無償とは言えないが、実験的に使う程度ではお金はかからない。

ポイントは、そのGoogle APIで、これが結構難しい。

Geofield MapでGoogle Mapを利用するためには、Maps JavaScript APIが必要になる。

GeocoderでGoogleのものを利用するためには、Geocoding APIが必要になる。

昔挑戦した時は、APIを限定しない形でAPIキーを設定して利用していたのだが、今回やってみると、Mapsの方は動作するのだが、Geocodingの方は動作せず、APIを使う権限がない(API access denied. Request: https://maps.googleapis.com/maps/api/geocode/json)と怒られてしまう。いろいろ調べてみたら、結局APIキーを設定する時に「ウィザードで選択」から入らないといけないということがわかった。

画像

ここで一般公開データを明示的に選択してAPIキーを作成したら、無事に動くようになった。

画像

Mapsでも同じ選択項目はあるのだが、このステップを飛ばしても動作する。どうもGeocoding APIに固有の問題らしい。

後は、リファラで限定すると、Geocoding APIが機能しなくなる。

時間がある時にきちんと調べなければと思っているが、まずは備忘録として記録しておくことにする。

タグ