Google Maps APIが2018年6月以降、サービスが変更になったことで、Maps APIを使用したグーグルマップが表示しない、または機能しないなど、問題が起こっている。
もちろん、APIキーを新規取得するか、新しいサービスへのAPIアカウントの移行を行えば問題は解消する。
今回は、WPプラグイン「Basic Google Maps Placemarks」、上記の関係と、このプラグインのアップデート[2016/08/19]で、Google Maps APIが追加された点から、変更点およびGeocoding APIの取得・設定方法について記す。
変更を余儀なくされたのは、「Basic Google Maps Placemarks」プラグインで設定していた地図に、新たな場所を追加したときに気がついた。
まず、新規の場所を設定するために、
Placemarks > Add News で、Placemark Address に住所や施設名を入れたところ、エラーメッセージが出力される。
Geocoding APIは、住所や施設名などをいれると、緯度・経度に変換したり、その逆引きも可能。
Geocoding APIが効いていないし、これでは目的の場所にピンが立たない。
ちなみに、geocordeが機能していた場合は、以下↓
エラーは表示されるが、新規場所の保存は可能である。
しかし、ピンは付かない状況。テキストのリスト表示は出来る。
設定 > Basic Google Maps Placemarks > Geocoding API に取得したGeocoding API を入力することとなる。
Basic Google Maps Placemarks では、2つのAPIキーの取得が必要である。
当初、上記のMaps API Key(=Maps JavaScript API)のプロジェクト(Google Cloud Platform) に、使用中のAPIを複数指定することが出来る、と検索記事にも書かれていたので、その手順で同じプロジェクトに、Geocoding API を追加した。
しかし、この方法では、Placemark Addressに場所を入れても、緯度・経度を取得出来ず、Google Cloud Platform上でも、リクエスト(5)は確認できるもすべてエラー(5)となっている。
プラグインの設定ページでGeocoding APIを入力しないで保存した場合、どうやら英語で「出力されるエラーメッセージには、2種類とも「キーの制限」をかけなさい」(勝手に解釈)と出ている。
いろいろ調べた結果、Maps JavaScript API と Geocoding API 「キーの制限」 > [ アプリケーションの制限] のかけ方 が違うことが判明。
Maps JavaScript API :HTTPリファラー(ウェブサイト)
Geocoding API : IPアドレス
そして、アプリケーションの制限は、1つのプロジェクトに1つしか設定できないことがわかる。
参考1:WEBサービスAPIの制限について> トピックス|Google Maps プラットフォームなら国際航業
参考2:Google Map APIs を使用するためのAPIキー取得と設定方法>マルティスープ株式会社
両方にキーの制限をかけるには、2つのプロジェクトを設定する必要があるということだ。
ということで、Geocoding API で新規のプロジェクトを作成。
キーの制限 > アプリケーションの制限 > IPアドレス に利用しているレンタルサーバのIPアドレスを入力。
(使用しているレンタルサーバのコントロールパネルのメニューなどから、IPアドレスを知ることができる。)
これで、ようやく問題は解決した。
ただし、すべてのマップ関連のプラグインで、2つのAPI、2つのプロジェクトが必要なわけではないので、各プラグインで必要なAPI設定を行えば、基本的には問題なく表示される。
ちなみに、2018年6月のMaps API 取得前のエラー画面。
このエラー表示は、新サービスが始動する前のもの。(2018年6月以前)
サービスが変更になるため、Google Maps APIを取得したが、Basic Google Maps Placemarks で表示されるマップだけ表示されないという不具合から、さらに、請求アカウントの登録も追加しないと表示されなかったりと、いろいろ問題解決には時間がかかったMaps API問題である。