geopy は、いくつかの一般的なジオコーディング Web サービス用の Python クライアントです。
geopy を使用すると、Python 開発者はサードパーティのジオコーダーやその他のデータ ソースを使用して、世界中の住所、都市、国、ランドマークの座標を簡単に見つけることができます。
geopy には、OpenStreetMap Nominatim、Google Geocoding API (V3)、およびその他の多くのジオコーディング サービス用のジオコーダー クラスが含まれています。完全なリストは、Geocoders のドキュメント セクションで入手できます。ジオコーダー クラスは 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 もサポートしました。
MIT ライセンスに基づく © geopy contributors 2006-2018 (著者を参照)。
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 は、測地線距離または大圏距離を使用して 2 点間の測地線距離を計算できます。測地線距離のデフォルトは関数 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
その他のドキュメントと例については、「ドキュメントを読む」を参照してください。