如何将地址转换为地理坐标



guys

我正在尝试编写一个代码,将地址转换为地理坐标。

下面是我尝试使用的代码。

问题是代码没有返回任何地理坐标,相反,它给了我错误的

File "C:Usersuser.spyder-py3untitled2.py", line 17, in <module>
my_geo = results[0]['geometry']['location']
IndexError: list index out of range

在四处查找错误的原因后,我发现这条线:

results=geocode_site.json()['results']

返回一个空列表。

当我尝试运行时:

print(geocode_site.json)

它给了我以下错误:

{'error_message': 'You must use an API key to authenticate each request to Google Maps Platform APIs. 
For additional information, please refer to http://g.co/dev/maps-no-account', 'results': [], 
'status': 'REQUEST_DENIED'}

我对这一切都很熟悉。这些错误让我很沮丧。有人能帮我吗?

我会非常感激的。谢谢

每个Google Maps API请求都需要一个API密钥。该API密钥必须属于一个项目,该项目必须关联到一个开放的账单帐户。请参阅此处,了解如何创建新项目,以及如何创建新的计费帐户。

尽管您没有详细说明如何发出请求,但您似乎在使用第三方模块来实现客户端地理编码。我首先建议您查看一下它的文档,找到在代码中添加所需API密钥的位置。如果在你彻底的研究表明这是不可能的,那么最好找其他的方法。

最推荐的方法是在服务器端发出Geocoding web请求。你可以在这里了解更多。

但是,如果您真的需要进行客户端地理编码请求,那么接下来最好的事情就是查看Google Maps Web Services的客户端库。你可以试着按照他们的Python指南,谷歌地图服务的Python客户端。但请注意,即使该指南在他们的官方网站上,他们也不支持这一点。由于客户将无法以这种方式限制他们的API密钥,并且如果这些密钥被泄露,这些密钥将容易被滥用和误用。他们的文件中提到:

  • 这些库不在标准谷歌弃用政策或支持协议的范围内

若要了解有关如何正确限制API密钥的更多信息,请参阅:https://developers.google.com/maps/api-key-best-practices?hl=en

最新更新