質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

Q&A

2回答

2261閲覧

Google MAPS API のDirection APIの呼び出しで、1秒あたりのリクエスト制限を外す方法

k.t.est

総合スコア49

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google マップ

Google Mapは、Google社がオンラインで提供している地図・ローカル検索サービスです。GIS(Geographic Information System:地理情報システム)の中の「WebGIS」に該当します。地図・航空写真・地形の表示方式があり、それぞれユーザーが縮尺を調整して表示させることができます。地域の情報サービスを検索する機能やルート検索の機能も搭載されています。

0グッド

3クリップ

投稿2018/10/18 02:35

編集2018/12/08 09:10

Google Maps JavaScript API v3のDirections service(https://developers.google.com/maps/documentation/javascript/directions)の呼び出しで、
1回あたりに複数のリクエスト(10回以上?)を行うと、OVER_QUERY_LIMITとなり一部でAPIが呼び出されなくなります。
この制限を外す方法はどうすればいいのでしょうか?

下記サイトより、quotaUserの設定をすれば、1秒あたりのリクエストの制限を変更できるとあります。
https://cloud.google.com/apis/docs/capping-api-usage?hl=ja&ref_topic=6262490&visit_id=636754260425808799-425214799&rd=1

これは下記のような記載を行えばいいということなのでしょうか?

javascript

1<script type="text/javascript" src="https://maps.google.com/maps/api/js?key=[API key]&quotaUser=[QUOTA_USER_ID]"></script>

※QUOTA_USER_IDは40文字以内の一意の文字列

quotaUserの設定をすればリクエスト総量(100秒あたりのリクエスト数や1日当たりのリクエスト数)は無制限となるようなのですが、
上記設定を行っても1回あたりのリクエスト数を増やすとOVER_QUERY_LIMITとなってしまいます。

ご教示頂ければ幸いです。

###補足1
https://developers.google.com/maps/faq#usage_apis
こちらにDirectionsはQPS(Queries per second)の上限が50との記載を見つけました。
Googleに問い合わせたところ、この上限を上げるには別途契約が必要になるようです。
とんでもない金額でしたので、上限を上げるのは考えないにしても、
上限の50とはいかなくても20-30QPSはこなしたいと考えており、この方法は未だに不明です。
ご教示お待ちしております。

###補足2(PHPからDirections APIに問い合わせした結果)
PHPからDirections APIに問い合わせる方法で、30セットの出発地/目的地をリクエストしたのですが、PHPの読み込みが完了するまでに、約12秒掛かってしまいました。読み込み速度を上げる方法はないのでしょうか?
(ちなみに自作のjavascriptで30件の表示を試みたところ約13秒)

結局PHPで問い合わせをしても読み込みに時間を要してしまい、1秒あたりのリクエスト回数が上げられない次第です。

PHPからGoogle MAPS API のDirection APIに問い合わせる方法
https://teratail.com/questions/162567

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

以前同じようなことで悩んだことがありますが

Google Maps APIの問い合わせには
クライアントサイド(JavaScript)とサーバーサイド(PHPなど)があります。
クライアントサイドでは1秒間の制限が厳しかったと思いますが
サーバサイドで問合せれば制限がだいぶゆるくなっていたと思います。

見当違いでしたらすみません

投稿2018/11/15 04:21

T.SiRo

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k.t.est

2018/11/19 04:31

ご回答有難う御座います。サーバーサイドからの問い合わせる方法もあるんですね。調べてみます。
k.t.est

2018/12/08 09:09 編集

補足2に追加させて頂いたのですが、サーバーサイドから問い合わせても読み込みが遅く、20-30QPSというレベルには達していない状況でした。
T.SiRo

2018/12/10 05:12

補足2の回答例を拝見しましたが 自分が実行したときはfile_get_contentsで処理をしました。 curl_initと速度面で変わるとかあるのかわかりませんが、試してみてはどうでしょうか? $ret = file_get_contents("https://maps.googleapis.com/maps/api/....
T.SiRo

2018/12/10 05:19

回答した後に、curlとfile_get_contentsを調べてみたところcurlの方が速いようなことが書かれていたので参考にならない書込みだったかもしれません、すみませんですm(_ _)m
k.t.est

2018/12/12 08:47

ちなみにT.SiRo様がアクセスしたコードでは、1秒あたりどれくらいのレスポンスを返せておられましたでしょうか?参考までにお聞かせ戴ければ幸甚です。(問い合わせ先がDirections APIでなければ、比較できないと思いますので、Directions APIでなければご回答頂かなくて大丈夫です)
T.SiRo

2018/12/13 01:19 編集

制限がかかったのはDistance Matrix APIでしたが特に読込に時間がかかるなどなったことはありませんでした、Distance Matrix APIでは1回の問合せで25x25が可能ですが、それを最大4回問い合わせしていますが、テスト時点では特に問題ありませんでした。 Directions APIも利用はしていますが、JavaScriptのみでの問合せで完結していますので特に制限は受けませんでした。ただ地点の制限が23になっていた為、1回の問い合わせで最大3回に分けて呼び出し、後で結合してます。 それも特に読込に時間がかかるなど、気になったことはありませんでした。 あまり参考になりませんですみません
k.t.est

2018/12/14 05:07

有難う御座います。Directions APIの問い合わせを3回に分けておられる理由は、謎の1回あたりのリクエスト制限(10回)に引っかかった為と思料致します。読み込みに時間が掛からないというのは羨ましい限りです。いずれにしましても情報有難う御座いました!
guest

0

下記サイトより、quotaUserの設定をすれば、1秒あたりのリクエストの制限を変更できるとあります。

こちらは無料枠(想定する課金額)を超えないように1秒あたりの利用数を制限するというものです。

1回あたりに複数のリクエスト(10回以上?)を行うと、OVER_QUERY_LIMITとなり一部でAPIが呼び出されなくなります。
この制限を外す方法はどうすればいいのでしょうか?

Getting startedに記載されている通りにGCPで課金設定すれば制限を外すことができます。
上記のquotaUserを設定しないと青天井になる可能性もありますのでご注意ください。

投稿2018/10/19 01:28

tabuu

総合スコア2449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k.t.est

2018/10/19 01:44

ご回答有難う御座います。 仰られている課金設定は既にしておりますので、200ドルを超えれば課金されるようになっております。 それではOVER_QUERY_LIMITのエラーを回避できないようです。 quotaUserの設定方法はご存知でしょうか?ご存知であればご教示頂ければ幸甚で御座います。
tabuu

2018/10/19 02:26

1秒当たりの上限は増やせないはずです。
k.t.est

2018/10/19 02:50

ご回答有難う御座います。もう少し教えて頂けますと幸甚で御座います。 ドキュメントの中の記載で「ユーザーごとの1秒あたりのリクエストの制限は変更できる」とありますので、1秒あたりのリクエストの上限は増やせないけれども、(課金額のコントロールの為)減らすことができる。ということでしょうか? 当方は1秒あたりの上限の設定を操作しておりませんので、デフォルトが上限値で設定されているということになりそうですが、この理解で正しいでしょうか? また、quotaUserの設定の方法は、弊記載方法は正しいでしょうか? ご教示頂けましたら幸甚で御座います。
tabuu

2018/10/19 03:12

最初の2つのご質問はGoogleのポリシーが変更されていなければその認識で合っています。 quotaUserは実際に使ったことが無いので分かりません、申し訳ございません。
k.t.est

2018/10/19 04:24

承知しました、ご教示頂きまして有難う御座います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問