谷歌地图v3 OVER_QUERY_LIMIT-用PHP MYSQL进行地理编码


google map v3 OVER_QUERY_LIMIT - Geocoding with PHP MYSQL

我在使用谷歌地图api v3时出现OVER_QUERY_LMIT错误。我想通过地理编码从数据库中添加标记。如果我在sql查询中使用limit,那么会显示标记,如果我将limit增加到大于10,那么它会显示错误。

<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('dbname') or die(mysql_error());    

$result = mysql_query("SELECT * FROM deal WHERE cityID=44 LIMIT 10") or die(mysql_error());
$count = 0;
echo mysql_num_rows($result);
$row = mysql_fetch_array($result);

?>

<script type="text/javascript">
          var geocoder;
          var map;
          //var address;
          function initialize() {

            geocoder = new google.maps.Geocoder();
            var latlng = new google.maps.LatLng(34.052234,-118.243685);
            var address = "<?php  echo $row['address']; ?>";
            //address = '3655 South Durango, Las Vegas, NV 89147';
            //alert(address);
            var myOptions = {
              zoom: 14,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            }

            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

            <?php
                while($row = mysql_fetch_array($result)){
            ?>
            geocoder.geocode( { 'address': "<?php  echo $row['address']; ?>"}, function(results, status) {
              if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: map, 
                    position: results[0].geometry.location
                });
                var contentString = '<div id="content">'+
                                      '<div id="siteNotice">'+
                                      '</div>'+
                                      "<h1 id='firstHeading' class='firstHeading'><?php  echo $row['businessName']; ?></h1>"+
                                      '<div id="bodyContent">'+
                                      "<p><?php  echo $row['longDesc']; ?></p>"+
                                      '<p>Attribution: Uluru, <a href="#">'+
                                      'Click To See</a> '+
                                      '</div>'+
                                      '</div>';
                var infowindow = new google.maps.InfoWindow({
                      content: contentString
                });
              google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map,marker);
              });
              <?php sleep(1); ?>
              } else {
                alert("Geocode was not successful for the following reason: " + status);
                //setTimeout("wait = true", 2000);
              }
            });
            <?php } ?>

          }
            google.maps.event.addDomListener(window, 'load', initialize);
        </script>

使用免费版本,您每天不能对超过2500个位置进行地理编码。根据我的记忆,你还必须在两个地理编码之间等待大约0.5秒,所以你必须推迟你的脚本;否则您将被阻止。