使用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")
与此同时,我注意到“艾菲尔铁塔”工作正常。有没有解决这个问题,有人可以解释谷歌“位置”内的艾菲尔铁塔和Furneaux Lodge之间的区别吗?
答案 0 :(得分:2)
这可能是Google Maps API的限制。 GeoNames似乎已了解Furneaux Lodge
,因此如果Google地图查询未返回答案,您可以将其用作Google地图的后备广告:
>>> 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