我有一个奇怪的问题。突然间,我的 Google 地理编码 API 的 PHP 实现决定停止工作。它现在为每个请求返回错误 602,这意味着地址不可用。但是,如果我打开我正在查询的实际网址,它会完美运行,我可以下载正确的信息。但如果我使用 curl 抓取它,则返回 602 而不是 200。
我尝试更改 API 密钥,以及检查和测试 url。
我有一个奇怪的问题。突然间,我的 Google 地理编码 API 的 PHP 实现决定停止工作。它现在为每个请求返回错误 602,这意味着地址不可用。但是,如果我打开我正在查询的实际网址,它会完美运行,我可以下载正确的信息。但如果我使用 curl 抓取它,则返回 602 而不是 200。
我尝试更改 API 密钥,以及检查和测试 url。
我曾经将我的国家(“澳大利亚”)添加到地理编码搜索字符串中,以将自由格式的文本搜索限制为“本地”地址。这似乎要杀了它。
geocoder.geocode(event.arg + "Australia");
现在我在构造函数中添加它(Actionscript,但可能适用于其他语言)
var geocoder:ClientGeocoder = new ClientGeocoder(
new ClientGeocoderOptions({
countryCode: "AU",
language: 'en'/
}));
我正在使用以下方法进行地理编码。您可以尝试一下,以确保它不是 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 进行地理编码的本教程,请务必查看。
这是一个迟到的答复。
根据http://code.google.com/intl/en/apis/maps/documentation/geocoding/,
不再需要 Maps API 密钥。
注意:Google Geocoding API 不再需要 Maps API 密钥!Google Maps API Premier 客户必须另外使用新的加密密钥签署他们的 URL。
不过有一个限制。
使用 Google 地理编码 API 的查询限制为每天 2,500 个地理定位请求。(Google Maps API Premier 的用户每天最多可以执行 100,000 个请求。)强制执行此限制是为了防止滥用和/或重新利用 Geocoding API,并且此限制将来可能会更改,恕不另行通知。此外,我们强制执行请求速率限制以防止滥用服务。如果您超过 24 小时限制或以其他方式滥用服务,Geocoding API 可能会暂时停止为您工作。如果您继续超过此限制,您对 Geocoding API 的访问可能会被阻止。
解决该限制的方法是同时使用多个代理请求地理编码。如果您有 10 个具有不同 IP 地址的代理,您每天可以请求 25000 个地理编码。
Google 现在在您的请求中强制执行有效密钥,因此请确保您指定
&key=YOUR_VALID_KEY&sensor=false
在您的要求中。
如果你没有传递一个有效的密钥,你会得到 602。
如果它未能对它正在尝试的地址进行地理编码,它将返回 602。