我正在使用NodeJs來製作地理編碼web應用程序。地理編碼的東西運行良好,除了我有谷歌的錯誤620的40%的事實,所以我失去了很多地址到地理編碼。NodeJs&Google地理編碼器API
錯誤620:因爲http.get(....)正在GET請求過快的谷歌Web服務。
我試着用的setTimeout(requestGeocod(地點,客戶,細節),1000),但火災的NodeJS requestGeocod normaly。
我可以改變讓我的要求的100%。
/*GOOGLE MAPS GEOCODING API QUERY*/
function requestGeocod(place, client, details){
var options = {
host: 'maps.google.com',
port: 80,
path: '/maps/geo?'+ query.stringify({"q":place}) +'&output=json&oe=utf8/&sensor=false&key='+api
};
console.log("Requête : " + options.path)
http.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.setEncoding('utf8');
res.on('data', function(chunk){
client.emit('result', {"chunk":chunk, "details":details})
})
res.on('end', function(){
console.log("Fin du GET");
})
}).on('error', function(e) {
console.log("Got error: " + e.message);
client.emit("error");
})
}
提前謝謝你。
什麼是你請求的速率? 'setTimeout(requestGeocod(place,client,details),1000)'不會改變速率,它只會增加客戶端的延遲。 –
客戶端的速率非常高。我在客戶端使用setTimeout來調用每1sec requestGeocod(地點,客戶端,詳細信息) – Servernumber