【发布时间】:2018-10-07 22:44:59
【问题描述】:
为什么下面这段代码输出 None ?
import geocoder
g = geocoder.google('Mountain View, CA')
print g.latlng
【问题讨论】:
为什么下面这段代码输出 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 stopped supporting keyless API access back on June 11, 2018.要使用 Google 作为地理编码提供商,您需要get an API key 并启用计费。如果您不想为他们的 API 访问付费,您可能想查看一些 free alternatives 进行地理编码。
编辑:看起来geocoder 文档也有您可以尝试使用的a list of alternatives。