2011-10-04 6 views
7

मैंने Google मानचित्र 'एपीआई को एक पता भेजने और लेट और एलएनजी वापस प्राप्त करने के लिए एक स्क्रिप्ट लिखी है। हालांकि, मुझे त्रुटि संदेशों को प्राप्त हो रहा है कि मैंने 20 या उससे अधिक प्रश्नों के बाद Google की दर सीमा पार कर ली है। क्या ऐसा कुछ है जिसे मैं नहीं मान रहा हूं?Google मानचित्र API के लिए रेटिंग दर सीमा, लेकिन पता नहीं क्यों

मैं किसी भी मदद की सराहना करता हूं। मैं एपीआई की इतनी बेहतर समझ का उपयोग करने में बहुत नया हूं कि मैं दर सीमा को मार रहा हूं क्यों बहुत मददगार होगा।

स्थान नामक एक सीएसवी फ़ाइल से पते पढ़ने के बाद, नीचे मेरा प्रासंगिक कोड है।

for row in locations: 
     address = 'XXX, New Haven, CT' 
     first = re.search('^(.*),',row[0]) 
     address = re.sub('XXX',first.group(), address) 
     lat, lng = gmaps.address_to_latlng(address) 

और मेरा त्रुटि संदेश नीचे है।

Traceback (most recent call last): 
    File "<input>", line 5, in <module> 
    File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1. 
    0.2-py2.7.egg/googlemaps.py", line 310, in address_to_latlng 
     return tuple(self.geocode(address)['Placemark'][0]['Point']['coordinates'][1 
    ::-1]) 
     File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/googlemaps-1. 
    0.2-py2.7.egg/googlemaps.py", line 262, in geocode 
     raise GoogleMapsError(status_code, url, response) 
    GoogleMapsError: Error 620: G_GEO_TOO_MANY_QUERIES 

उत्तर

8

प्रत्येक gmaps.address_to_latlng कॉल गूगल सर्वर के लिए अनुरोध भेजता है, और आप केवल उन की सीमित संख्या के कर सकते हैं।

usage limits पर गूगल के डॉक्स:

गूगल जियोकोडिंग API के उपयोग के प्रति दिन 2,500 जियोलोकेशन अनुरोधों का एक क्वेरी सीमा के अधीन है। [...] इसके अतिरिक्त, हम सेवा के दुरुपयोग को रोकने के लिए अनुरोध दर सीमा लागू करते हैं।

और docs on G_GEO_TOO_MANY_QUERIES:

दिया कुंजी 24 घंटे की अवधि में अनुरोध सीमा से अधिक हो गई है या समय की बहुत छोटा अवधि में बहुत अधिक अनुरोध प्रस्तुत किया है। यदि आप समानांतर या तंग लूप में एकाधिक अनुरोध भेज रहे हैं, तो यह सुनिश्चित करने के लिए कि आप अनुरोधों को बहुत जल्दी नहीं भेजते हैं, अपने कोड में टाइमर या रोकें।

तो, वे आपको बस इतना करना बता बस क्या करना: तो आप की अनुमति दी अनुरोधों के समाप्त न हो

import time 

# And then in the loop, pause: 
time.sleep(1) 

सेकंड की एक उचित संख्या के लिए "1" को समायोजित करें।

+4

मुझे लगता है कि वहाँ भी प्रति सेकंड 10 अनुरोधों, जो संभवत: सीमा है कि यहाँ मारा जा रहा है की एक सीमा होती है। –

+4

2500 की दैनिक टोपी की सीमा प्रत्येक 35 सेकंड में से एक है। – Omnifarious

+1

इसने मेरी समस्या पूरी तरह से हल की, धन्यवाद!मैंने गलती से माना कि केवल दैनिक सीमा थी। अगर कोई सोच रहा था, तो 1 सेकंड की देरी में कोई समस्या नहीं थी, इसलिए यह निश्चित रूप से 1/सेकंड से अधिक की दर की अनुमति देता है। – Kevin

2

मैंने मुझे यह महसूस करने के लिए सहारा दिया है कि अधिकांश चोटी (जैसे मेरी) Google मानचित्र एपीआई में हिस्सा छोड़ती है जो 'अनुरोध दर सीमा' के बारे में बात करती है जो 'प्रति दिन सीमा' अलग होती है।

इसलिए 'अनुरोध दर सीमा' प्रति सेकंड 10 अनुरोधों का है।

तो के आधार पर है कि आप 20 स्थिर नक्शे के साथ एक पृष्ठ प्रदर्शित करता है, तो ... और अंत उपयोगकर्ता एक तेजी से इंटरनेट कनेक्शन है (हो सकता है आप?) ...

गूगल मानचित्र एपीआई के फिर उन 20 अनुरोधों 1 सेकंड के अंतराल में तेजी से होता है ...

इसलिए इससे आप अपनी राय तोड़ते हैं और वे छवि प्रदर्शन को अवरुद्ध करते हैं।

यह अभी यहाँ उस पर पढ़ने के बाद मेरे निष्कर्ष है और वहाँ

सौभाग्य

संबंधित मुद्दे