2014-02-08 60 views
1

我剛開始使用GeoPy。我需要將給定的位置轉換爲經度和緯度。但是,我收到GeocoderQuotaExceeded錯誤。我只是按照文檔中給出的例子。任何幫助將不勝感激。GeoPy:GeocoderQuotaExceeded error

from geopy.geocoders import GoogleV3 
geolocator = GoogleV3() 
address, (latitude, longitude) = geolocator.geocode("175 5th Avenue NYC") 
GeocoderQuotaExceeded: The given key has gone over the requests limit in the 24 hour  period or has submitted too many requests in too short a period of time 

這發生在第一個請求本身上。我沒有提出任何其他請求。這是我第一次使用該應用程序。

+0

這意味着您已用完Google的配額。你有沒有設置你自己的Api密鑰,並檢查你沒有超過你的津貼?我假設它使用[此服務隱藏](https://developers.google.com/maps/documentation/geocoding/#Limits)...注意:如果有其他人使用相同的公共IP使用服務(Universitty,同樣的公司等),而且你沒有使用API​​密鑰,這可能會導致你獲得2500以內的免費使用費。 – Basic

+0

@Basic謝謝你的問題。你是否願意將此添加爲答案,以便我可以upvote? – Manoj

+0

完成。感謝和高興,我可以幫助 – Basic

回答

2

從我在OP評論...

這意味着你已經使用了谷歌從您的配額。

你有沒有建立自己的API密鑰,並檢查你沒有超過你的零花錢?我認爲這是在引擎蓋下使用this service

注意:如果有其他人使用服務(大學,同一公司等)具有相同的公共IP,並且您沒有使用API​​密鑰,那麼這可能會導致您獲得的免費用量少於2500次。

2

有一個API的列表,併爲每個請求隨機使用它們。例如在python

like keys = [key1,key1,key3....] 

location = Geocoder(random.choice(keys)).geocode(address) 

location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long) 

根據您的需要。你的津貼會更多。

0

作爲一個臨時解決方案,您可以使用VPN(它給你另一組2個500請求免費的)。

與隨機密鑰

解決方案應該工作以及和它是永久使用更好,但如果你只是在測試過程(這是我的情況),這是一個快速的解決方案。

0

註冊您自己的API是一個很好的舉措! @ Yaswanth的回答也不太爲我工作,而是來自這裏:https://github.com/geopy/geopy,這樣做:

第1步:註冊你的私鑰在這裏:https://developers.google.com/maps/documentation/geolocation/intro

步驟2:在您的蟒蛇,導入好的地理編碼器,我推薦GoogleV3。

from geopy.geocoders import GoogleV3 

第3步。然後在您的代碼中,輸入您在上面的鏈接中註冊的許多密鑰。

address = '1 Your Address Here' # Put in your address 
geo_keys = [key1,key1,key3....] # Put in your API keys as strings 
geolocator = GoogleV3(api_key=random.choice(geo_keys)) 
geolocator.geocode(address) 

第4步然後你開始做生意了!

print(geolocator.latitude) 
print(geolocator.longitude)