geopy
2.4.1
geopy 是多種流行地理編碼 Web 服務的 Python 用戶端。
geopy 讓 Python 開發人員可以使用第三方地理編碼器和其他資料來源輕鬆定位全球地址、城市、國家和地標的座標。
geopy 包括 OpenStreetMap Nominatim 的地理編碼器類別、Google 地理編碼 API (V3) 和許多其他地理編碼服務。完整清單可在地理編碼器文件部分找到。 Geocoder 類別位於 geopy.geocoders 中。
geopy 針對 CPython(版本 3.7、3.8、3.9、3.10、3.11、3.12)和 PyPy3 進行了測試。 geopy 1.x 系列也支援 CPython 2.7、3.4 和 PyPy2。
© geopy 貢獻者 2006-2018(參見作者),遵循 MIT 許可。
使用 pip 安裝:
pip 安裝 geopy
或者,從 PyPI 下載輪子或來源存檔。
要將查詢地理定位到地址和座標:
>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim( user_agent = " specify_your_app_name_here " )
>>> location = geolocator.geocode( " 175 5th Avenue NYC " )
>>> print (location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print ((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)
>>> print (location.raw)
{'place_id': '9167009604', 'type': 'attraction', ...}
尋找一組座標對應的位址:
>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim( user_agent = " specify_your_app_name_here " )
>>> location = geolocator.reverse( " 52.509669, 13.376294 " )
>>> print (location.address)
Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union
>>> print ((location.latitude, location.longitude))
(52.5094982, 13.3765983)
>>> print (location.raw)
{'place_id': '654513', 'osm_type': 'node', ...}
Geopy 可以使用測地距離或大圓距離來計算兩點之間的測地距離,預設測地距離可用作函數 geopy.distance.distance。
以下是測地距離的範例用法,採用一對(lat, lon)
元組:
>>> from geopy.distance import geodesic
>>> newport_ri = ( 41.49008 , - 71.312796 )
>>> cleveland_oh = ( 41.499498 , - 81.695391 )
>>> print (geodesic(newport_ri, cleveland_oh).miles)
538.390445368
使用大圓距離,也採用一對(lat, lon)
元組:
>>> from geopy.distance import great_circle
>>> newport_ri = ( 41.49008 , - 71.312796 )
>>> cleveland_oh = ( 41.499498 , - 81.695391 )
>>> print (great_circle(newport_ri, cleveland_oh).miles)
536.997990696
更多文件和範例可以在閱讀文件中找到。