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

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

ただいまの
回答率

90.41%

  • Google Apps Script

    1014questions

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

  • Google マップ

    397questions

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

  • Google Cloud Platform

    194questions

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

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 359

k.t.est

score 22

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

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

<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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

>下記サイトより、quotaUserの設定をすれば、1秒あたりのリクエストの制限を変更できるとあります。
こちらは無料枠(想定する課金額)を超えないように1秒あたりの利用数を制限するというものです。

>1回あたりに複数のリクエスト(10回以上?)を行うと、OVER_QUERY_LIMITとなり一部でAPIが呼び出されなくなります。
>この制限を外す方法はどうすればいいのでしょうか?
Getting startedに記載されている通りにGCPで課金設定すれば制限を外すことができます。
上記のquotaUserを設定しないと青天井になる可能性もありますのでご注意ください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/10/19 10:44

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

    キャンセル

  • 2018/10/19 11:26

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

    キャンセル

  • 2018/10/19 11:50

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

    キャンセル

  • 2018/10/19 12:12

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

    キャンセル

  • 2018/10/19 13:24

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

    キャンセル

0

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/19 13:31

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

    キャンセル

  • 2018/12/08 16:50 編集

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

    キャンセル

  • 2018/12/10 14:12

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

    キャンセル

  • 2018/12/10 14:19

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

    キャンセル

  • 2018/12/12 17:47

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

    キャンセル

  • 2018/12/13 10:18 編集

    制限がかかったのはDistance Matrix APIでしたが特に読込に時間がかかるなどなったことはありませんでした、Distance Matrix APIでは1回の問合せで25x25が可能ですが、それを最大4回問い合わせしていますが、テスト時点では特に問題ありませんでした。

    Directions APIも利用はしていますが、JavaScriptのみでの問合せで完結していますので特に制限は受けませんでした。ただ地点の制限が23になっていた為、1回の問い合わせで最大3回に分けて呼び出し、後で結合してます。
    それも特に読込に時間がかかるなど、気になったことはありませんでした。

    あまり参考になりませんですみません

    キャンセル

  • 2018/12/14 14:07

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

    キャンセル

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

  • ただいまの回答率 90.41%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Google Apps Script

    1014questions

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

  • Google マップ

    397questions

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

  • Google Cloud Platform

    194questions

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