2013-04-26 69 views
4

我正在使用Geopy。代碼中出現以下錯誤。反向地理編碼的地理錯誤

我都使用相同的代碼作爲https://code.google.com/p/geopy/wiki/ReverseGeocoding

from geopy import geocoders 

g = geocoders.GeoNames() 
(place, point) = g.geocode("Palo Alto, CA 94306") 
print place 
>> "Palo Alto, US 94306" 
print point 
>> (37.418008999999998, -122.127375) 

(new_place,new_point) = g.reverse(point) 
print new_place 
>> 3998 Ventura Ct, Palo Alto, US 94306 
print new_point 
>> (37.417850000000001, -122.12793000000001) 

工作得很好,直到打印點。發生錯誤g.reverse(point)

Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\geopy\geocoders\base.py", line 9, in reverse 
    raise NotImplementedError 
NotImplementedError 

有什麼建議嗎?

+0

也被張貼在gis.se:http://gis.stackexchange.com/questions/59216/geopy-error-with-reverse-geocoding – 2013-05-08 15:08:27

回答

0

geopy 0.97上可用的反向地理編碼。您可以從https://github.com/geopy/geopy下載並安裝geopy的新版本,或克隆git存儲庫。

git clone https://github.com/geopy/geopy.git 
cd geopy 
sudo python setup.py install 

如果你想下載並安裝Windows,則可以從https://github.com/geopy/geopy/archive/release-0.97.zip

解壓得到一個最新版本,並

cd geopy-release-0.97 
python setup.py install 

來地理定位查詢到的地址,座標:

>>> from geopy.geocoders import GoogleV3 
>>> geolocator = GoogleV3() 
>>> address, (latitude, longitude) = geolocator.geocode("175 5th Avenue NYC") 
>>> print(address, latitude, longitude) 
175 5th Avenue, New York, NY 10010, USA 40.7410262 -73.9897806 

查找對應於一組座標的地址:

>>> from geopy.geocoders import GoogleV3 
>>> geolocator = GoogleV3() 
>>> address, (latitude, longitude) = geolocator.reverse("40.752067, -73.977578") 
>>> print(address, latitude, longitude) 
77 East 42nd Street, New York, NY 10017, USA 40.7520802 -73.9775683 

-