「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の動作確認を説明しました。