2009-05-22 15 views
1

私は奇妙な問題を抱えています。突然、私のPHPのGoogle Geocoding APIの実装は、単に動作を停止することに決めました。これで、すべての要求に対してエラー602が返されます。つまり、アドレスは使用できません。しかし、私が照会している実際のURLを開くと、完全に動作し、正しい情報をダウンロードできます。しかし、それをつかむためにカールを使用すると、200の代わりに602が返されます。Googleジオコーディング奇妙

私はAPIキーの変更とURLのチェックとテストを試みました。

+0

今私は、コンストラクタで(ActionScriptを、おそらく他の言語に適用されます)、これを追加するには、このテストのためにローカルでPHPサーバーを実行していますか? 2つの要求は同じマシンから来ているのですか、私の質問です。 – overslacked

+0

ローカルマシンからURLを開いた場合、カールリクエストは別のマシンからのものです。奇妙なことは、約5ヶ月間、変更なしで完全に機能していることだけです。 URLはまだ機能していますが、そのマシンがカールを使用して取得すると、602が返されます。 – James

+0

あなたのブラウザでブラウザのURLをテストするのは半分のテストです。サーバーは何らかの種類のプロキシを持っていたり、ブラックリストに載っていたり、他の設定を考慮している可能性があります。この時点で、私があなただったら私はGoogleのボードにヒットしました。 – overslacked

答えて

0

しようとしているアドレスをジオコーディングできない場合は、602を返します。

+0

それはすべてのアドレスで失敗しますが、私がカールをつかんでいるURLを参照するだけでうまくいきます。 – James

+0

あなたのapiキーの不一致の可能性があります。センサーをfalseに設定していますか? –

1

次の方法でジオコードを使用しています。あなたはそれがcURLの問題ではないことを確認するためにそれを試すことができます。

$request_url = $base_url . "&q=" . urlencode($address); 
$xml_string = file_get_contents($request_url); 
$xml_string = str_replace('xmlns=', 'ns=', $xml_string); 
$xml = simplexml_load_string($xml_string); 

また、あなたがPHPでジオコーディングにthis tutorialを見ていない場合は、それをチェックアウトしてください。

+0

電流と同じ応答です。 – James

0

Googleが今では、あなたのリクエストで

&key=YOUR_VALID_KEY&sensor=false 

を指定してください、あなたのリクエストで有効なキーを適用します。

あなたは有効なキーを渡さない場合は、これが返事が遅れている602

1

取得します。

http://code.google.com/intl/en/apis/maps/documentation/geocoding/によると、

A Maps APIキーが必要なくなりました。

注:Google Geocoding API no には、より長いマップAPIキーが必要です。 Google Maps API Premierのお客様は、 新しい暗号鍵を使用して、URLにさらに に署名する必要があります。

ただし、制限があります。 GoogleのジオコーディングAPIの

使用すると、一日あたり2,500 ジオロケーションリクエストのクエリ制限に 対象となります。この 制限はジオコーディング APIの乱用 および/または再利用を防ぐために施行された( GoogleマップAPIプレミアのユーザーは、1日あたり 100,000の要求を行う場合があります)、そしてこの制限は、予告なしに 将来的に変更することができます。 さらに、 サービスの乱用を防ぐために、 レート制限を要求しています。 の24時間制限を超過したり、サービスを悪用したりすると、 のGeocoding APIが一時的に機能しなくなる可能性があります( )。 に引き続きこの制限を超えると、 ジオコーディングAPIへのアクセスがブロックされる可能性があります。

制限の回避策は、多くのプロキシを同時に使用してジオコードを要求することです。 IPアドレスが異なるプロキシが10個ある場合、1日に25000個のジオコードをリクエストできます。

2

フリーフォームのテキスト検索を「ローカル」アドレスに制限するために、私は自分の国(「オーストラリア」)をジオコーディング検索文字列に追加しました。これはそれを殺すようだ。

geocoder.geocode(event.arg + "Australia"); 

var geocoder:ClientGeocoder = new ClientGeocoder(
      new ClientGeocoderOptions({ 
       countryCode: "AU", 
       language: 'en'/ 
      })); 
関連する問題