2012-10-25 114 views
2

使用地理編碼在新西蘭地理編碼酒類網點。地理編碼非地址:地理位置

我遇到的問題是有些地方沒有街道地址,而是Google地圖中的地方。例如,堵漏:

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在谷歌「地點」之間的區別?

回答

2

也許這是Google Maps API的限制。然而GeoNames似乎知道即將Furneaux Lodge,所以你可以使用它作爲一個備用的谷歌地圖,如果谷歌地圖查詢沒有返回一個答案:

>>> 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 
+0

感謝佩德羅。這聽起來像是一個合理的想法。 –