【发布时间】:2014-04-06 02:11:23
【问题描述】:
我的应用程序从每隔几个小时更新一次的文件中获取地址,并对它们进行地理编码并将它们放在谷歌地图上。
我得到了一个 OVER_QUERY_LIMIT 状态,即使我从前一天就没有使用过它,并且我在每个查询之间设置了时间。我在每个查询之间放置 2 秒,此代码在调用它所在的函数时使用,该函数在之前调用后 2 秒后调用。
var xmlhttp
var status;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var lAddress = tAddress.replace(/ /g, " +");
xmlhttp.open("GET","http://maps.googleapis.com/maps/api/geocode/json?address=" + lAddress +"&sensor=false", false);
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
var result = JSON.parse(xmlhttp.responseText);
status = result.status;
if(status == google.maps.GeocoderStatus.OK){
precise[index].found = 1;
precise[index].lat = result.results[0].geometry.location.lat;
precise[index].lng = result.results[0].geometry.location.lng;
precise[index].addr = tAddress;
}
else if(status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
alert("Search limit reached. Please try again tomorrow.");
}
}
}
xmlhttp.send();
【问题讨论】:
-
您说地址在一个文件中,每隔几个小时更新一次 - 如果您不检查哪些地址已更新并且您(重新)对所有地址进行地理编码,这可能会将您推倒你的极限。
-
我不会对所有这些进行地理编码。我根据搜索条件从文件中得到我需要的地址。
-
您是否跟踪您正在地理编码的数量?
-
不,但我是唯一一个使用它的人,而且我不可能达到 2500 个查询。
标签: javascript ajax google-maps google-maps-api-3