2009-05-22 76 views
1

我有一個奇怪的問題。突然間,我的Google Geocoding API的PHP實現簡單地決定停止工作。現在它爲每個請求返回錯誤602,意味着地址不可用。但是,如果我打開我查詢的實際網址,它可以很好地工作,我可以下載正確的信息。但是,如果我使用捲曲來抓取它,602會返回而不是200.谷歌地理編碼古怪

我已嘗試更改API密鑰以及檢查和測試網址。

+0

你運行你的PHP服務器在本地本次測試?這兩個請求來自同一臺機器,是我的問題。 – overslacked 2009-05-22 19:20:58

+0

如果我從本地機器打開URL,curl請求來自另一臺機器。唯一奇怪的是,在大約5個月的時間裏,它沒有任何改變就完美運行。而且URL仍然有效,但是當該機器使用curl抓取它時,只返回602. – James 2009-05-22 19:30:48

+0

問題是,在自己的計算機上在瀏覽器中測試URL只是測試的一半。服務器可能有某種類型的代理,在某種黑名單上,或者有其他配置方面的考慮......在這一點上,如果我是你,我會碰到Google板。 – overslacked 2009-05-22 19:34:26

回答

0

如果無法對其嘗試的地址進行地理編碼,則返回602。

1

我使用以下方法進行地理編碼。你可以嘗試一下,以確保它不是一個捲曲問題。

$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

谷歌現在強制有效的鑰匙在你的請求,從而確保您在請求中指定

&key=YOUR_VALID_KEY&sensor=false 

如果你沒有通過一個有效的密鑰,你會得到602。

1

這是一個很晚的答覆。

http://code.google.com/intl/en/apis/maps/documentation/geocoding/

Google Maps API密鑰不再需要。

注意:Google地理編碼API編號爲 需要更長的Maps API密鑰! Google Maps API Premier客戶必須使用 新加密密鑰對其網址進行額外簽名。

雖然有一個限制。

使用谷歌地理編碼API的是 受到每天2500所 地理位置查詢請求的限制。 ( 谷歌地圖API總理的用戶可以執行每天最多 100,000請求。)這 限制,是爲了防止地址解析 API的濫用 和/或再利用,而這種限制可在 未來,恕不另行通知更改。 此外,我們強制執行請求 的速率限制,以防止濫用 服務。如果您超過了24小時限制或以其他方式濫用服務, 地理編碼API可能會暫時停止爲您的 工作。如果您繼續使用 超過此限制,則您可能會阻止對地址解析API的 訪問。

限制的解決方法是請求同時使用多個代理的地理編碼。如果您有10個具有不同IP地址的代理,則可以每天請求25000個地理編碼。

2

我曾將我的國家(「澳大利亞」)添加到地理編碼搜索字符串中,以將自由格式文本搜索限制爲「本地」地址。這似乎殺死了它。

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

現在我加入這個在構造函數(ActionScript中,但可能適用於其他語言)

var geocoder:ClientGeocoder = new ClientGeocoder(
      new ClientGeocoderOptions({ 
       countryCode: "AU", 
       language: 'en'/ 
      }));