我刚开始使用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
这发生在第一个请求本身。我没有提出过任何其他要求。这是我第一次使用该应用程序。
答案 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)