結構制限って難しかったりするので要注意です〜
スタートガイド | Google Maps Geocoding API | Google Developers
皆大好きgoogle geocoding apiに関するよくある誤解について。
ジオコーディングとは、住所を元に緯度・経度を取得する機能で、業務で緯度・経度を扱う方も多いかと思います。
そんなジオコーディングですが、1日の利用回数制限、ちゃんと理解していますか?というお題です。
Google Geocoding API 使用時のクエリ制限として、1 日あたりの位置情報リクエストが 2,500 回に制限されています(Google Maps API for Business をご利用の場合は、1 日あたり 100,000 件までリクエストを実行できます)。
https://developers.google.com/maps/documentation/geocoding/?hl=ja#Limits
これです。
「1 日あたりの位置情報リクエストが 2,500 回」だそうです。これ、解りますか?
2500回!? 少なっ!! と思ったあなたは勘違いしてます。
1 IPにつき 2500回ですよ。
解りやすい例を挙げると以下になります。
- サーバサイド(java等)でジオコーディングした場合、1日に2500回しか実行できない。
- クライアントサイド(javascript)でジオコーディングした場合、1ユーザにつき2500回まで実行可能。
サーバサイドの場合、サーバは常に固定IPであるため、きっかり2500回しか実行できない。
しかしjsの場合はアクセスしたユーザ毎に2500回まで実行可能。つまりほぼ無制限ですね。jsの場合はサーバを介さないので、ユーザのGIP毎にカウントされるのです。
この違いを理解してないと「google geocoding api使えね〜!!」となりますが、使えないのはお前d(略
業務でよくある落とし穴として、会社から外部のネットに接続する際に1個のグローバルIPになって外に出る場合、ユーザ毎に回数がカウントされる筈が、社員全員が同じGIPになってしまうため、
あっという間に回数制限オーバーし、403(利用制限オーバー)やstatic mapで以下の画像が表示される事があります。
サーバサイドでジオコーディングする必要がある場合
前述のように、google geocoding apiはサーバサイドで行うと1日に2500回しか実行できません。
時間かかってもいいから1日に数万件ジオコーディングしたい場合ってありますよね。
そんなあなたに「YAHOOジオコーダAPI」をおすすめします。
http://developer.yahoo.co.jp/webapi/map/openlocalplatform/v1/geocoder.html
はっきりと1日の利用制限について明記されてませんが、ネット上では1日に5万回程度OKと言われています。
実際私は業務で使っていて1日に3〜4万件実行していますが、エラーは起きていません。ただし1秒間に1アクセス、1リクエストで1住所、という制約は守る必要があるので、
ジオコーディングに10時間以上かかる事は覚悟しましょう。
それじゃ遅いんだよ!!という方には裏ワザがあります。1 IPにつき n回という制限なんですよね?だったら、
プロキシ挟んで10個のGIPを用意して全IP並列してジオコーディングする
馬鹿っぽいですが、これで10倍高速化!?
- 作者: 勝又雅史,株式会社ゴーガ
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/12/01
- メディア: 大型本
- 購入: 1人 クリック: 1回
- この商品を含むブログ (10件) を見る