带API密钥的PyGeocoder

2 投票
1 回答
7460 浏览
提问于 2025-04-17 23:10

我正在使用 PyGeocoder

https://bitbucket.org/xster/pygeocoder/wiki/Home

我创建了一个简单服务器选项的 API 密钥,这个选项没有给我 CLIENT_ID 的选择。

所以我有了以下代码:

from pygeocoder import Geocoder
business_geocoder = Geocoder(None, 'MY_API_KEY')
address_string = "London, United Kingdom"
results = business_geocoder.geocode(address_string)

这段代码运行得很好,但我的使用情况没有在管理控制台窗口中显示出来,而且我可以把我的 API_key 改成任何值,它依然可以正常工作。有没有其他人使用这个功能,如果有的话,你们是怎么实现的?

例如,这段代码可以正常工作:

business_geocoder = Geocoder(client_id=None, private_key='whatever')

而这段代码则会报错:

business_geocoder = Geocoder(client_id="some", private_key='whatever')

pygeolib.GeocoderError: Error Forbidden, 403
Query: https://maps.google.com/maps/api/geocode/json?language=&region=&signature=hrlktNatq4RvlN9Cvd6VNQf8FMw%3D&bounds=&client=some&components=&address=Barnfield+Drive%2C+Chichester%2C+United+Kingdom&sensor=false

1 个回答

2

谷歌的文档似乎说明简单的API密钥认证方法不支持地理编码API,但它们还是能以某种方式工作。

我刚刚更新了pygeocoder的1.2.3版本,所以你现在只需要在升级你的模块后执行

Geocoder('YOUR_API_KEY').geocode(...

就可以了。

pip install --upgrade pygeocoder

撰写回答