2

使用 geopy 对新西兰的酒类商店进行地理编码。

我遇到的问题是有些地方没有街道地址,而是谷歌地图中的地方。例如,插入:

Furneaux Lodge, Endeavour Inlet, Queen Charlotte Sound, Marlborough 7250

通过浏览器 GUI 进入谷歌地图给了我

但是,在 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")

同时,我注意到“埃菲尔铁塔”运行良好。有没有办法解决这个问题,有人可以解释谷歌“位置”内的埃菲尔铁塔和弗诺旅馆之间的区别吗?

4

1 回答 1

2

也许这是 Google Maps API 的限制。但是GeoNames似乎知道Furneaux Lodge,因此如果 Google Maps 查询未返回答案,您可以将其用作 Google Maps 的后备:

>>> 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
于 2012-10-25T22:56:38.770 回答