はじめに
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を使うことで、手軽に座標の取得や距離の計算ができるようになります。