「Pythonで住所から緯度・経度を簡単に取得したい」
 「プログラムで2点間の距離を計算したい」
このような場合には、geopyがオススメです。
 この記事では、geopyについて解説しています。
本記事の内容
- geopyとは?
 - geopyのシステム要件
 - geopyのインストール
 - geopyの動作確認
 
それでは、上記に沿って解説していきます。
geopyとは?
geopyは、ジオコーディングWebサービス用のPythonクライアントです。
 geopyを利用すると、簡単に住所・ランドマーク名の緯度・経度を取得できます。
geopyが対応しているのは、次のサービス・APIになります。
- OpenStreetMap Nominatim
 - Google Geocoding API (V3)
 - その他ジオコーディングサービス
 
利用する上で、API登録・アカウント登録なども不要です。
以上、geopyについて説明しました。
 次は、geopyのシステム要件を説明します。
geopyのシステム要件
現時点(2022年9月)でのgeopyの最新バージョンは、2.2.0となります。
この最新バージョンは、2021年7月11日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
 - macOS
 - Linux
 
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.5
 - Python 3.6
 - Python 3.7
 - Python 3.8
 - Python 3.9
 
この状況は、以下のPython公式開発サイクルとはかけ離れています。
| バージョン | リリース日 | サポート期限 | 
| 3.6 | 2016年12月23日 | 2021年12月23日 | 
| 3.7 | 2018年6月27日 | 2023年6月27日 | 
| 3.8 | 2019年10月14日 | 2024年10月 | 
| 3.9 | 2020年10月5日 | 2025年10月 | 
| 3.10 | 2021年10月4日 | 2026年10月 | 
ここでは、Python 3.7の利用を推奨しておきます。
以上、geopyのシステム要件を説明しました。
 次は、geopyのインストールを説明します。
geopyのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.2.2 setuptools 65.3.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
 pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、geopyのインストールです。
 geopyのインストールは、以下のコマンドとなります。
pip install geopy
geopyのインストールは、一瞬で終わります。
 終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ------------- ------- geographiclib 1.52 geopy 2.2.0 pip 22.2.2 setuptools 65.3.0 wheel 0.36.2
geopyは、1つのパッケージに依存していることが確認できます。
これであれば、既存環境にも問題なくgeopyを導入できるでしょう。
以上、geopyのインストールを説明しました。
 次は、geopyの動作確認を説明します。
geopyの動作確認
geopyの動作確認を行います。
 みんな大好き東京タワーの位置情報を取得してみましょう。
from geopy.geocoders import Nominatim
geo = Nominatim(user_agent="myapp")
location = geo.geocode("東京タワー")
print(location.address)
print((location.latitude, location.longitude))
print(location.raw)
上記コードを実行すると、次のような結果が表示されます。
東京タワー, 東京タワー通り, 麻布台二丁目, 港区, 東京都, 106-0041, 日本
(35.65858645, 139.74544005796224)
{'place_id': 298695709, 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright', 'osm_type': 'relation', 'osm_id': 4247312, 'boundingbox': ['35.6580427', '35.6591227', '139.744746', '139.7461594'], 'lat': '35.65858645', 'lon': '139.74544005796224', 'display_name': '東京タワー, 東京タワー通り, 麻布台二丁目, 港区, 東京都, 106-0041, 日本', 'class': 'tourism', 'type': 'attraction', 'importance': 0.5000314898471236, 'icon': 'https://nominatim.openstreetmap.org/ui/mapicons/poi_point_of_interest.p.20.png'}
簡単に住所や緯度経度を取得できました。
以上、geopyの動作確認を説明しました。
  
  
  
  
