3

Google が 1 日あたりのリクエスト数を 2,500 に制限していることは理解しています... しかし、地球上で私が今日これほど多くのリクエストを行ったというわけにはいきません。

$street_no = get_post_meta($prop->ID, 'street_no', true);
$street = get_post_meta($prop->ID, 'street', true);
$street_suffix = get_post_meta($prop->ID, 'street_suffix', true);

$addr = urlencode( $street_no." ".$street." ".$street_suffix." BC Canada" );
$url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$addr.'&sensor=true';
$json_result = json_decode(file_get_contents($url));

if ( $json_result->status === "OVER_QUERY_LIMIT" ) :
    sleep(2);
    $json_result = json_decode(file_get_contents($url));
endif;

ご覧のとおり、「OVER_QUERY_LIMITI tell the script to sleep for 2 seconds and then continue on...」というステータスが表示された場合、今朝のある時点では機能しているように見えましたが、今では単一の住所をジオコーディングすることさえできません。 .

この時点で何をすべきか途方に暮れています...それは私のアプリケーションをまったく役に立たなくします。

4

5 に答える 5

5

1 秒間に送信するクエリの数が多すぎるのではないでしょうか?

このスレッドをチェックしてください:

Google マップの使用中に OVER_QUERY_LIMIT

于 2013-02-08T22:40:09.813 に答える
4

クォータは共有 IP のすべてのユーザー間で共有されるため、同じ共有 IP 上の他のサイトは Google Geocoder を使用する必要があります。

詳細については、Google Maps API v2 グループのこのスレッドを参照してください。

ところで-ラックスペースは推測でした...

回避策として、クライアント ベースのジオコーディングを使用しますが、使用条件が使用条件に準拠していることを確認してください。

Web サービスは key をサポートするようになりました。もう 1 つのオプションは、リクエストでキーを使用して、独自のクォータを取得することです。

于 2013-02-08T23:19:06.820 に答える
1

heroku でホストされている Java アプリケーションで、これと同様の問題に直面しました。私がそれを回避する方法は、マイクロ EC2 インスタンスをセットアップし、そこに Dante をインストールしてプロキシ サーバーとして実行することでした。次に、プロキシ経由でジオコーディング リクエストをルーティングするだけで、1 日あたり 2,000 件のリクエストをすべて作成できます。明らかに、API 呼び出しも最小限に抑えるために結果をキャッシュする価値があります。EC2 インスタンスは最初の 1 年間は無料で、その後もそれほど高価ではなく、Dante 以外にもいつでも使用できます。

ここでこれを設定する方法の詳細を書きました: Heroku からの Google ジオコーディングの使用

于 2013-05-11T22:00:11.580 に答える
0

Heroku のサーバー (Amazon EC2 でホストされている) からジオコーディング REST インターフェイスを呼び出すのと同じ問題があります。

リクエストで Maps API キーを使用でき、API キーごとの呼び出し数を追跡できれば、これは修正される可能性があります。

これが深刻な問題であることには同意します...

Bing、 MapQuest などには無料のジオコーディング API があります。あなた (および私) はそれらを確認する必要があります。

于 2013-03-04T21:50:55.340 に答える