Google Maps V3 API - 超过查询限制,但只有1个请求

时间:2011-07-20 17:51:57

标签: google-maps geocoding

当我发送单个地理编码请求时,我最近开始从Google Map API获取Over Query Limit状态响应。我真的很困惑为什么会这样?我绝对没有达到每日2,500个请求限制。

此外,如果我只是发布我的请求(http://maps.googleapis.com/maps/api/geocode/json?address=1125+First+Avenue,New

如果有人有任何想法,我会很感激。

2 个答案:

答案 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>&emsp;<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'/>&emsp;<span phv='&quot;%1$s&quot;' style='font-size: 0.7em;font-weight: small;'>e.g.,&ldquo;pizza&ldquo;</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) {}
      }
    });
}