Rumah > Artikel > hujung hadapan web > Bagaimana untuk Menghalang API Peta Google OVER_QUERY_LIMIT Ralat dalam v3?
Pengenalan:
Dalam Google Maps API v3, anda boleh menghadapi ralat OVER_QUERY_LIMIT apabila membuat terlalu banyak permintaan geokod dalam tempoh yang singkat. Untuk mengelakkan ralat ini, adalah perlu untuk melaksanakan mekanisme kelewatan antara permintaan.
Pelaksanaan JavaScript:
Untuk memperkenalkan jeda antara panggilan geokod, anda boleh menggunakan JavaScript berikut kod:
<code class="javascript">function codeAddress(vPostCode) { if (geocoder) { // If there's an existing delay, wait for it to finish while (wait) { /* Just wait. */ } geocoder.geocode({ 'address': "'" + vPostCode + "'"}, 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 }); } else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) { wait = true; setTimeout(function() { wait = false; }, 2000); // Set a delay of 2000 milliseconds } else { alert("Geocode was not successful for the following reason: " + status); } }); } }</code>
Kod ini menyemak kelewatan sedia ada, menetapkan kelewatan baharu jika ralat OVER_QUERY_LIMIT berlaku dan menunggu kelewatan selesai sebelum menyambung semula geokod.
Contoh:
Dalam kod yang anda berikan, anda boleh menggantikan fungsi codeAddress sedia ada dengan versi yang dikemas kini:
<code class="javascript">function codeAddress(vPostCode) { if (geocoder) { while (wait) { /* Just wait. */ }; geocoder.geocode( { 'address': "'" + vPostCode + "'"}, 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 }); } else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) { wait = true; setTimeout(function() { wait = false; }, 2000); } else { alert("Geocode was not successful for the following reason: " + status); } }); } }</code>
Pengubahsuaian ini akan memperkenalkan kelewatan yang diperlukan untuk mengelakkan ralat OVER_QUERY_LIMIT.
Atas ialah kandungan terperinci Bagaimana untuk Menghalang API Peta Google OVER_QUERY_LIMIT Ralat dalam v3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!