2013-08-20 5 views
-1

У меня ошибка OVER_QUERY_LIMIT при использовании google maps api v3. Я хочу добавить маркеры из базы данных по геокодированию. Если я использую предел в sql-запросе, тогда отображаются маркеры, если я увеличиваю предел больше 10, а затем покажу ошибку.google map v3 OVER_QUERY_LIMIT - Геокодирование с PHP MYSQL

<?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> 
+0

Возможный дубликат [API Карт Google, превышающий ограничение по запросу в секунду] (http://stackoverflow.com/questions/14014074/google-maps-api-over-query-limit-per-second-limit) – geocodezip

ответ

0

Вы не можете геокодировать более 2500 locations в день с бесплатной версией. Основываясь на моих воспоминаниях, вам также нужно подождать приблизительно 0,5 секунды между двумя геокодами, поэтому вы должны задержать сценарий; иначе вы будете заблокированы.

Смежные вопросы