2

为什么下面的代码给出 None 作为输出?

import geocoder
g = geocoder.google('Mountain View, CA')
print g.latlng
4

1 回答 1

2

要找到答案,您可以使用他们提供的其他代码手动执行地理编码器的工作:

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文档也有一个你可以尝试使用的替代品列表。

于 2018-10-08T01:27:08.237 回答