我的应用程序从每隔几小时更新一次的文件中获取地址,并对其进行地理编码并将其放在谷歌地图上。
现在正在返回Over_query_limit,即使应用程序尚未在几天内使用。
有些日子它成功地进行了地理编码,有些时候它甚至在没有达到限制时返回over_query_limit。
如果在该地理编码上达到over_query_limit,我会在查询上放置3秒的延迟。然后它使用相同的地址重新运行代码以再次对其进行地理编码。
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();
答案 0 :(得分:0)
实际上谷歌有限制使用地理编码,如果你没有使用付费的,所以我建议当地点创建时使用地理编码获取lat long,将其保存到具有相关地址的数据库,并根据你的要求使用该数据。或者您可以使用服务器端地理编码,因此与客户端check this相比,您将获得更多限制。