Pythonを使って座標取得・距離計算!結果を表示する方法を解説

はじめに

Pythonを使って座標の取得や距離の計算を行う方法を解説します。座標の取得や距離の計算は、地図アプリやGPSアプリなどでよく使われています。

Pythonで座標を取得する方法

Pythonで座標を取得するには、geopyというライブラリを使います。

pip install geopy

geopyを使って、住所から緯度経度を取得する方法を以下に示します。

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="何か文字列を入れてください。")
location = geolocator.geocode("東京都千代田区丸の内1-9-1")
print((location.latitude, location.longitude))

上記のコードを実行すると、以下のように緯度と経度が出力されます。

(35.68190185, 139.76842575810417)

座標を表示するPythonのコード

取得した座標を地図上に表示するには、foliumというライブラリを使います。

!pip install folium

foliumを使って、取得した座標を地図上に表示する方法を以下に示します。

import folium
location = (35.6761919, 139.6503116)
m = folium.Map(location=location, zoom_start=15)
folium.Marker(location=location).add_to(m)
m.save('map.html')

上記のコードを実行すると、map.htmlというファイルが生成されます。このファイルをブラウザで開くと、以下のように地図上にマーカーが表示されます。

Pythonを使った座標間の距離計算方法

Pythonを使って座標間の距離を計算するには、geopyのdistanceを使います。

from geopy.distance import distance
location1 = (35.6761919, 139.6503116)
location2 = (35.658034, 139.701636)
print(distance(location1, location2).km)

上記のコードを実行すると、以下のように距離が出力されます。

5.064898688073997

distance関数は、単位をキロメートルで返しますが、単位をマイルに変更するには、以下のようにします。

print(distance(location1, location2).miles)

上記のコードを実行すると、以下のように距離が出力されます。

3.1471821363698482

距離計算の結果を表示するPythonのコード

計算した距離を地図上に表示するには、foliumを使います。

m = folium.Map(location=location1, zoom_start=10)
folium.Marker(location=location1).add_to(m)
folium.Marker(location=location2).add_to(m)
folium.PolyLine(locations=[location1, location2], color='red').add_to(m)
m.save('map.html')

上記のコードを実行すると、map.htmlというファイルが生成されます。このファイルをブラウザで開くと、以下のように地図上に2つのマーカーとその間の距離が表示されます。

Pythonで座標を扱う際の注意点

  • 座標の精度には注意が必要です。
  • 緯度経度の表記には、度分秒表記と10進表記があります。

まとめ

Pythonを使って座標の取得や距離の計算を行う方法を解説しました。座標の取得や距離の計算は、地図アプリやGPSアプリなどでよく使われています。Pythonを使うことで、手軽に座標の取得や距離の計算ができるようになります。