GeoPy:GeocoderQuotaExceeded错误

时间:2014-02-08 13:38:41

标签: python geocoding geopy

我刚开始使用GeoPy。我需要将给定位置转换为纬度和经度。但是我收到GeocoderQuotaExceeded错误。我只是按照文档中给出的示例进行操作。任何帮助将不胜感激。

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

这发生在第一个请求本身。我没有提出过任何其他要求。这是我第一次使用该应用程序。

4 个答案:

答案 0 :(得分:3)

从我对OP的评论......

这意味着您已经用完了Google的配额。

您是否设置了自己的Api密钥并检查了您是否超过了您的免税额?我假设它在引擎盖下使用this service

注意:如果有其他人使用相同的公共IP使用该服务(大学,同一家公司等)并且您没有使用API​​密钥,那么这可能会导致您获得少于2,500个免费使用。

答案 1 :(得分:2)

拥有API列表,并为每个请求随机使用它们。例如python

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

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

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

根据您的要求。你的津贴会更多。

答案 2 :(得分:0)

作为临时解决方案,您可以使用VPN(它可以免费提供另外一组2 500个请求)。

使用随机密钥的解决方案应该也可以使用,并且它更适合永久使用,但如果您正在进行测试(这是我的情况),这是一个快速的解决方案。

答案 3 :(得分:0)

编辑:截至2018年7月,我发现每个API密钥的默认请求是每天1个。  因此,您必须在Google云平台上注册结算帐户,以便每天免费获得约1000个请求。

注册您自己的API是一个很好的举措! @ Yaswanth的回答对我来说不太有用,但从那里开始:https://github.com/geopy/geopy,这样做:

步骤1.在此处注册您的私钥:https://developers.google.com/maps/documentation/geolocation/intro

步骤2.在你的python中,导入一个好的地理编码器,我推荐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)