Я пытаюсь лучше понять, как использовать javascript с Google Geocoder API.
Вот полная настройка: http://jsfiddle.net/25gybgds/
$("#btn").click(function () {
var geocoder = new google.maps.Geocoder();
var finaltable = document.getElementById("datatable");
alert("Row count: " + count);
var i;
for (i = 1; i < 20; i++) {
var fullAddress = finaltable.rows[i].cells[0].innerHTML + ", " + finaltable.rows[i].cells[1].innerHTML;
getLatLong(fullAddress, i);
}
function getLatLong(addr, llrow) {
var latCell = finaltable.rows[llrow].cells[2];
var lonCell = finaltable.rows[llrow].cells[3];
geocoder.geocode({
'address': addr
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCell.innerHTML = String(results[0].geometry.location.lat());
lonCell.innerHTML = String(results[0].geometry.location.lng());
} else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
latCell.innerHTML = "OVER";
lonCell.innerHTML = "OVER";
}else {
alert("Something got wrong " + status);
latCell.innerHTML = "ERR";
lonCell.innerHTML = "ERR";
}
});
}
});
Я пытался использовать функцию setTimeout() безрезультатно, и я продолжаю получать ошибку OVER_QUERY_LIMIT (моя полная таблица составляет 319 строк, но даже выполнение 20 уже вызовет эту проблему).
я пытался сделать
setTimeout(geocoder.geocode({ // rest of code here}), 3000);
и все равно как-то не дает мне это сделать.
Я пробовал искать множество решений в Stackoverflow, например это и this, но я не могу правильно применить их к моему конкретному случаю. Может ли кто-нибудь указать мне правильное направление, как точно установить тайм-аут для этого, чтобы я мог использовать это для заполнения каждой отдельной строки (или делаю ли я что-то принципиально неправильное?)
Спасибо!
setInterval
вместоsetTimeout
. - person MrUpsidown   schedule 02.10.2015