2005年の登場以来、さまざまな変化を遂げてきた「Google Maps」。その革命的な成長は月間アクティブユーザーが10億人を超えたことで証明されており、Webサイトに地図を埋め込める機能「Google Maps API」の利用者数も年々増え続けていた。
そんな折、Googleは2018年7月16日より「Google Maps API」が「Google Maps Platform」へ移行することを告知した。これまで「Google Maps API」は開発者がAPIキーを発行していなくても利用でき、無料かつ気軽に地図を埋め込むことができた。「Google Maps Platform」ではAPIキーの利用が必須になり、代理店のコードもしくはクレジットカードの登録がなければ地図が表示されなくなる。
新しい料金システムについては、Google Maps Platfroms 料金表を参照してもらったほうが早いかと思うが、要するにAPIの無償利用枠が大幅に縮小し、課金設定が必須になったということだ。ちなみにGoogleマップの共有機能「地図を埋め込む」を利用して作成している場合は対象外なのでご安心を。
個人で運用している「神楽坂ごはん」というサイトは、店舗の場所を分かりやすく伝えるために「Google Maps」をAPI経由で利用している。具体的には、WordPress に「Geo Mashup」というプラグインを導入し、投稿記事に緯度経度情報を持たせることで地図上で複数の店舗を探す機能を実現していた。
「神楽坂ごはん」での地図表示は重要な機能なので、なんとか金銭面での負担なく続けられないか模索してみることにした。まずはGoogleの示す手順どおりプロジェクトを作成し、支払い情報の登録を行いAPIキーを取得。続いて「Geo Mashup」プラグインにAPIキーを設定し、「Google Cloud Platform Console」にアクセスし利用状況を確認してみた。
「Geo Mashup」プラグインの動作についてチェックしてみると、複数あるAPIのうち「Maps and Street View API」というものを利用して地図を表示していることが判明した。「Google Maps Platfroms」の料金表を見ると呼び出し1,000回あたりの料金が14ドルもかかるため、毎月200ドル分の無料枠などあっという間に超えてしまう。
このままではまずいので、何か対策は取れないか「神楽坂ごはん」での地図表示を見直すことにした。まず、「Google Maps Platfroms」をできるだけ安価に利用する手法がないか改めて確認したところ、「Maps Embed API」であれば読み込み無制限で使えることが分かった。iframeを使用する形式のため利用できる機能に制限はあるが、個別店舗の地図表示なら問題はない。
WordPressの個別記事テンプレートに記載していた「Geo Mashup」による地図表示を、以下のような記述に変更してみた。「神楽坂ごはん用APIキー」の部分はさきほど取得したもの。「店舗住所 店舗名」の部分は「Geo Mashup」プラグインからロケーション情報だけを抜き出すことができたので、それを適用している。最初は店舗名だけをクエリにしてみたのだが、「MARIO」といったよくある店名だと正常に地図が表示されなかったため、住所も組み合わせることで精度を上げた。
<iframe width=”100%” height=”450″ frameborder=”0″ style=”border:0″ src=”https://www.google.com/maps/embed/v1/place?key=神楽坂ごはん用APIキー&q=店舗住所 店舗名” allowfullscreen></iframe>
結果は非常に良好で、ほとんどのアクセスは「Maps Embed API」による無料の地図表示でまかなえている。地図上で複数店舗を探す場合のみ有料のAPIを利用しているが、それも無料枠の範囲内に無事収まりそうでよかった。