【发布时间】:2016-07-20 02:46:57
【问题描述】:
首先,我没有达到每日 2,500 个地址的上限。
我有 25 个地址,并且我已经在 JavaScript 中将每个地址之间的休眠时间设置为 5 秒。在对 18 或 19 个地址进行地理编码后,我总是会收到 OVER_QUERY_LIMIT 错误。其余 7 或 6 个地址始终无法进行地理编码。
Google API 地理编码限制为每秒 5 个地址,还是增加了?
谢谢。
代码
function geocodeAddress(geocoder, addresses ) {
var arrayLength = addresses.length;
for (var i = 0; i < arrayLength; i++) {
var address = String(addresses[i]);
// alert(address)
sleep(5000)
geocoder.geocode({'address': address}, function (results, status)
{
if (status === google.maps.GeocoderStatus.OK) {
var result = results[0].geometry.location;
var name = results[0].formatted_address;
writeFile(geocode_file_path, name + ',' + result.toString());
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
}
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
【问题讨论】:
-
你的代码是什么样的?如果你一次开火 25 发然后休眠 5 秒,那将无济于事。
-
函数 geocodeAddress(geocoder, 地址) { var arrayLength =addresses.length; for (var i = 0; i
-
地址通过上面复制的循环。当传递每个地址时,我设置了 sleep(5000) ,即 5 秒。睡眠功能有效。
-
sleep()?它是如何实现的? -
我复制了上面的地址循环函数和睡眠函数的代码
标签: javascript google-api geocoding