"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Google Maps API v3 में OVER_QUERY_LIMIT त्रुटियों से कैसे बचें?

Google Maps API v3 में OVER_QUERY_LIMIT त्रुटियों से कैसे बचें?

2024-11-12 को प्रकाशित
ब्राउज़ करें:619

How to Avoid OVER_QUERY_LIMIT Errors in Google Maps API v3?

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