当我发送单个地理编码请求时,我最近开始从Google Map API获取Over Query Limit状态响应。我真的很困惑为什么会这样?我绝对没有达到每日2,500个请求限制。
此外,如果我只是发布我的请求(http://maps.googleapis.com/maps/api/geocode/json?address=1125+First+Avenue,New
如果有人有任何想法,我会很感激。
答案 0 :(得分:18)
这似乎是发生这种情况的原因是因为我将请求作为我的PHP代码的一部分,因此它使用我的托管服务提供商(rackspace)ips请求并且他们已经达到他们当天的限制基于什么其他人在做。
避免这种情况的解决方案是让客户端使用javascript发送请求,以便用户浏览器和他们当前正在使用的任何IP进行处理。
希望解决方案可以帮助其他人。
答案 1 :(得分:3)
当您从php发送请求时,请求将从您的服务器IP发送,谷歌允许单个IP的有限请求,因此最好从用户的IP发送请求。您可以使用以下JavaScript函数来完成。
function display_map(address_str,business_name,phone_number,google_local_pages){
var address = address_str;
// Create a new Geocoder
var geocoder = new google.maps.Geocoder();
// Locate the address using the Geocoder.
geocoder.geocode( { "address": address }, function(results, status) {
// If the Geocoding was successful
if (status == google.maps.GeocoderStatus.OK) {
var latlang = results[0].geometry.location;
// alert(latlang);
// Create a Google Map at the latitude/longitude returned by the Geocoder.
var myOptions = {
zoom: 16,
center: results[0].geometry.location,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
// Add a marker at the address.
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
// var data = "<div id='top'><span>"+business_name+"</span><a href='"+google_local_pages+"'>More Info</a><div id='address'>"+address_str+"</div></div>";
var infowindow = new google.maps.InfoWindow({
content: "<div id='top' style='height:175px;width:200px;'><span id='bname' style='font-size: 1.3em;font-weight:bold;'>"+business_name+':'+"</span><a style='text-decoration: none;' target='_blank' href='"+google_local_pages+"'>More Info</a><hr/><div id='address' style='font-size: 1em;font-weight:normal;align:left'>"+address_str+"</div><hr/><div id='lower'><a style='text-decoration: none;' target='blank' href='http://maps.google.com/maps?saddr=&daddr="+address_str+"'"+">Directions</a> <a style='text-decoration: none;' href='javascript:void(0);' onclick='showform();'>Search Nearby</a><div style='display:none;' id='hiddenForm'><hr><span style='font-size: 1em;font-weight:bold;'>Search Nearby:</span><form action='http://maps.google.com/maps' method='get' target='_blank'><input type='text' name='q' id='q' value='' size='12' /><input type='submit' value='GO'/> <span phv='"%1$s"' style='font-size: 0.7em;font-weight: small;'>e.g.,“pizza“</span><input type='hidden' name='near' value='"+address_str+"'/></form></div></div>"
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
} else {
try {
console.error("Geocode was not successful for the following reason: " + status);
} catch(e) {}
}
});
}