
はじめに
Pythonを使って座標の取得や距離の計算を行う方法を解説します。座標の取得や距離の計算は、地図アプリやGPSアプリなどでよく使われています。
Pythonで座標を取得する方法
Pythonで座標を取得するには、geopyというライブラリを使います。
1 | pip install geopy |
geopyを使って、住所から緯度経度を取得する方法を以下に示します。
1 2 3 4 | from geopy.geocoders import Nominatim geolocator = Nominatim(user_agent = "何か文字列を入れてください。" ) location = geolocator.geocode( "東京都千代田区丸の内1-9-1" ) print ((location.latitude, location.longitude)) |
上記のコードを実行すると、以下のように緯度と経度が出力されます。
1 | ( 35.68190185 , 139.76842575810417 ) |
座標を表示するPythonのコード
取得した座標を地図上に表示するには、foliumというライブラリを使います。
1 | !pip install folium |
foliumを使って、取得した座標を地図上に表示する方法を以下に示します。
1 2 3 4 5 | 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を使います。
1 2 3 4 | from geopy.distance import distance location1 = ( 35.6761919 , 139.6503116 ) location2 = ( 35.658034 , 139.701636 ) print (distance(location1, location2).km) |
上記のコードを実行すると、以下のように距離が出力されます。
1 | 5.064898688073997 |
distance関数は、単位をキロメートルで返しますが、単位をマイルに変更するには、以下のようにします。
1 | print (distance(location1, location2).miles) |
上記のコードを実行すると、以下のように距離が出力されます。
1 | 3.1471821363698482 |
距離計算の結果を表示するPythonのコード
計算した距離を地図上に表示するには、foliumを使います。
1 2 3 4 5 | 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を使うことで、手軽に座標の取得や距離の計算ができるようになります。