Google मैप्स API v3 में OVER_QUERY_LIMIT से बचने के लिए क्वेरीज़ को धीमा करना
Google मैप्स API v3 का उपयोग करते समय, दैनिक के बारे में जागरूक होना महत्वपूर्ण है क्वेरी सीमा और दर सीमा. इन सीमाओं से अधिक होने पर OVER_QUERY_LIMIT त्रुटि हो सकती है। इससे बचने के लिए, प्रश्नों के बीच देरी को लागू करना आवश्यक है।
जावास्क्रिप्ट में देरी को लागू करना
जावास्क्रिप्ट में देरी को लागू करने का एक तरीका setTimeout() फ़ंक्शन के माध्यम से है। यहाँ एक उदाहरण है:
function codeAddress(vPostCode) {
if (geocoder) {
setTimeout(function() {
geocoder.geocode({ 'address': "'" vPostCode "'"}, function(results, status) {
// Code for handling the geocoding result
});
}, 2000);
}
}
इस उदाहरण में, प्रत्येक जियोकोडिंग अनुरोध भेजने से पहले setTimeout() का उपयोग करके 2 सेकंड की देरी की जाती है। Google मैप्स एपीआई द्वारा निर्धारित दर सीमा को पूरा करने के लिए आवश्यकतानुसार विलंब मान को समायोजित करें।
माइक विलियम्स का संस्करण 3 पोर्ट
माइक विलियम्स ने एक संस्करण 3 पोर्ट प्रदान किया है उनका मूल ट्यूटोरियल जो देरी को प्रभावी ढंग से संभालता है और OVER_QUERY_LIMIT त्रुटि से बचाता है। यह पोर्ट यहां पाया जा सकता है:
http://acleach.me.uk/gmaps/v3/plotaddresses.htm
माइक विलियम्स के संस्करण 3 पोर्ट से प्रासंगिक कोड
माइक विलियम्स के संस्करण 3 पोर्ट से निम्नलिखित कोड स्निपेट देरी के कार्यान्वयन को दर्शाता है:
function getAddress(search, next) {
geo.geocode({address:search}, function (results,status)
{
// If that was successful
if (status == google.maps.GeocoderStatus.OK) {
// Lets assume that the first marker is the one we want
var p = results[0].geometry.location;
var lat=p.lat();
var lng=p.lng();
// Output the data
var msg = 'address="' search '" lat=' lat ' lng=' lng '(delay=' delay 'ms)<br>';
document.getElementById("messages").innerHTML = msg;
// Create a marker
createMarker(search,lat,lng);
}
// ====== Decode the error status ======
else {
// === if we were sending the requests to fast, try this one again and increase the delay
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
nextAddress--;
delay ;
} else {
var reason="Code " status;
var msg = 'address="' search '" error=' reason '(delay=' delay 'ms)<br>';
document.getElementById("messages").innerHTML = msg;
}
}
next();
}
);
}
यह कोड एक गतिशील विलंब तंत्र लागू करता है। यदि google.maps.GeocoderStatus.OVER_QUERY_LIMIT त्रुटि सामने आती है, तो कोड भविष्य की त्रुटियों से बचने के लिए अनुरोधों के बीच विलंब को समायोजित करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3