2013-04-28 36 views
1

我正在使用Google Places API for Javascript根據關鍵字進行大量搜索。Google Places Javascript API未提出某些請求

的所有請求都是這種格式:

var request = { 
     location: new google.maps.LatLng(40.711646, -74.016867), 
     radius: 50000, 
     keyword: "LAFAYETTE HIGH SCHOOL" 
} 

service.nearbySearch(request, 
function(response) { 
    console.log(response) 
}); 

上述重複超過450次,用不同的關鍵字。

如果我在控制檯中輸入任何請求,他們工作正常,並在控制檯中記錄有效的響應。

但是,當我實際上訪問了包含所有這些請求的網站時,我可以在網絡標籤中看到只有少數請求被創建。大多數請求根本不顯示在網絡選項卡中,並且控制檯返回null

這項工作的一些請求,但不是其他對我來說似乎很奇怪。我如何獲得Places API以正確放置所有請求並返回響應?

回答

0

這聽起來像是你在連續發送太多請求時被限制。檢查nearbySearch()回調中的PlacesServiceStatus值。如果是google.maps.places.PlacesServiceStatus.OVER_QUERY_LIMIT那麼你就被限制了。您需要放慢請求速度,但對於一次用戶訪問而言,連續450個地方是很多請求!除了在服務器上進行這些調用並緩存它們之外,我不確定要提出什麼建議。

+0

啊,這絕對是罪魁禍首,謝謝。由於我要求的數據集是靜態的,我想我會調用一次巨大請求並將其保存爲CSV文件。謝謝! – LonelyWebCrawler 2013-04-28 20:48:52

+0

這絕對是做到這一點的方法。當您從服務器發出請求時,請在請求之間等待幾秒鐘。我會在5秒之內完成,這應該避免節流,並且仍然可以讓你在幾分鐘內對所有內容進行地理編碼。 – 2013-04-28 20:55:38

+0

謝謝!我最終在客戶端提出了請求,並以CSV格式將每個請求附加到textarea,然後將其粘貼到服務器上的文件中。間隔1秒就夠了。 – LonelyWebCrawler 2013-04-28 23:03:41