为什么下面的代码给出 None 作为输出?
import geocoder
g = geocoder.google('Mountain View, CA')
print g.latlng
要找到答案,您可以使用他们提供的其他代码手动执行地理编码器的工作:
import requests
url = 'https://maps.googleapis.com/maps/api/geocode/json'
params = {'sensor': 'false', 'address': 'Mountain View, CA'}
r = requests.get(url, params=params)
results = r.json()
查看这个对象,我们可以看到它包含一个error_message
键以及状态OVER_QUERY_LIMIT
。错误信息如下:
print(results['error_message'])
您已超出此 API 的速率限制。我们建议在 Google Developers Console 中注册密钥: https ://console.developers.google.com/apis/credentials?project= _
这是因为 Google早在 2018 年 6 月 11 日就停止支持无密钥 API 访问。要将 Google 用作地理编码提供商,您需要获取 API 密钥并启用计费。如果您不想为其 API 访问付费,您可能想查看一些免费的地理编码替代方案。
编辑:看起来geocoder
文档也有一个你可以尝试使用的替代品列表。