1

特定の距離半径を使用して、ユーザーの現在の場所の周りにいくつかのトークンを生成するアプリケーションがあります。ユーザーは、それらの場所のいくつかに実行する必要があります。問題は、一部のトークンが湖、森、海、またはその他の物理的に到達できない場所に作成される可能性があることです。簡単な修正として、追加のトークンを生成し、ユーザーが特定の場所に到達したかどうかを判断する近接距離を増やします。各トークンが到達可能な場所に配置されるように、これを改善したいと考えています。

私が思いついた唯一の解決策は、Google Directions API を使用してユーザーからトークンまでのパスを決定し、ポリラインの最後の座標をトークンの新しい到達可能な場所として使用することです。これに関する私の問題は、ルート サービスに最大 30 件のリクエストを同時に投稿する必要がある可能性があり、クエリ レートの制限に達するのではないかと心配していることです。クエリのレート制限について明確なものは見つかりませんでした。

だから私の質問は、誰かがより良い解決策を知っているか、または道順クエリのレート制限について何か入力できるかどうかです? 各リクエスト間で 1 秒待機し、ユーザーに最大 30 秒待機させることは合理的な解決策ではありません。ありがとう。

UPDATE 質問で説明したソリューションを使用すると、各リクエスト間で1秒待っても、OVER_QUERY_LIMITが生成されます。それ以外は、ロジックが適切で、リクエストを通過したトークンが徒歩で到達可能な場所に表示されていました。

4

3 に答える 3

0

使用制限

Google Directions API の使用には、1 日あたり 2,500 件のルート リクエストのクエリ制限が適用されます。個々のルート リクエストには、リクエストに最大 8 つの中間ウェイポイントを含めることができます。

Google マップ プレミアのお客様は、1 日あたり最大 100,000 件のルート リクエストを照会でき、各リクエストで最大 23 のウェイポイントが許可されます。

すぐに制限に達しないように、マップのプレミア カスタマーについて調べてみることをお勧めします。あなたのアプリが人気になれば、上限を引き上げることができるでしょう。

標高が見えるかどうかで崖かどうかを確認するのもひとつの方法です。ただ、湖かそうでないかを見るだけでもかなり難しそうです。Google マップ以外の gps 検索サービスのようなものかもしれません。

場所間の距離を知りたいだけの場合は、Location.distanceTo()または static distanceBetween()を使用 してください。それが道路であるかどうかの情報を取得することは別の問題です。

于 2011-08-20T08:03:12.983 に答える
0

Location.distanceBetween() を使用して、2 つの緯度/経度間の距離を計算できます。これは静的な便利な API 呼び出しです。計算回数に制限はありません。

于 2011-08-20T05:45:49.630 に答える
0

約8時間後、ようやく何かが機能するようになりました。したがって、各リクエストに最大 8 つのウェイポイントを指定できるという事実を利用して、技術的には 1 つのリクエストで 9 つの場所への道順を尋ねることができます。これが私が今していることです:

一度に 9 つのランダムな場所を生成します。9 つの座標すべてを通過するポリライン パスを座標のリストとして返す DirectionsComputer に位置を渡します。次に、パスから 9 つの場所を選び、それらをトークンの場所として設定します。これで、すべてのトークンが半ランダムに生成され、常に道路上に表示され、36 個のトークンを生成するために 4 つの連続した要求を実行するだけで済みます。

いくつかのトークンがひとまとめになっている場合があります。たとえば、元は海にあった座標が同じビーチに移動されます。しかし、ほとんどの場合、すべてのテストで、トークンがばらばらに広がっていることが示され、残りは微調整できました。

于 2011-08-21T18:47:13.970 に答える