使用 geopy 对新西兰的酒类销售点进行地理编码。
我遇到的问题是,有些地方没有街道地址,但存在于 Google map 中。例如,插入:
Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlborough 7250
通过浏览器 GUI 进入 Google map
但是,在 Geopy 中使用它时,我收到一个 GQueryError 错误,指出该地理位置不存在。
这是地理编码的代码:
def GeoCode(address):
g=geocoders.Google(domain="maps.google.co.nz")
geoloc = g.geocode(address, exactly_one=False)
place, (lat, lng) = geoloc[0]
GeoOut = []
GeoOut.extend([place, lat, lng])
return GeoOut
GeoCode("Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlboroguh 7250")
同时,我注意到“埃菲尔铁塔”运行良好。有办法解决这个问题吗?有人可以解释一下 Google“位置”中埃菲尔铁塔和 Furneaux Lodge 之间的区别吗?
最佳答案
也许这是 Google map API 的限制。 GeoNames不过似乎了解 Furneaux Lodge
,因此如果 Google map 查询未返回答案,您可以将其用作 Google map 的后备方案:
>>> from geopy import geocoders
>>> gn = geocoders.GeoNames()
>>> place, (lat, lng) = gn.geocode('Furneaux Lodge')
>>> print('{}: {:.5f}, {:.5f}'.format(place, lat, lng))
Furneaux Lodge, F4, NZ: -41.08826, 174.18019
关于python - 对非地址进行地理编码 : Geopy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077380/