2014-02-08 39 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)