Pythonで任意の2つの地理的位置の間の距離を測定する。
なお、今回はgeopyとgeocoderライブラリを使用して任意の2つの地理的位置の間の距離を測定してみます。geopyライブラリは、Pythonの標準ライブラリではありませんので、事前にインストールしておく必要があります。geocoderライブラリも標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■任意の2つの地理的位置の間の距離を測定する
では、早速任意の2つの地理的位置の間の距離を測定するスクリプトを書いていきます。
■コード
from geopy.geocoders import Nominatim from geopy import distance a = Nominatim(user_agent="geoapitest") place_1 = "大阪城" place_2 = "心斎橋駅" destination_1 = a.geocode(place_1) destination_2 = a.geocode(place_2) lat1,long1 = (destination_1.latitude),(destination_1.longitude) lat2,long2 = (destination_2.latitude),(destination_2.longitude) length_1 =(lat1,long1) length_2 =(lat2,long2) print(distance.distance(length_1,length_2).km,"kms")
まずは、aという変数を作成し、その中でNominatim()関数を使用します。括弧内には「user_agent=””」でユーザーエージェントを指定します。その後、格納。これでNominatim APIを初期化します。
初期化後、place_1とplace_2という変数を作成し、その中に2つの地理的位置の間の距離を測定しますので、場所を指定し、格納します。今回は「大阪城」と「心斎橋駅」という場所を指定しています。
格納後、destination_1とdestination_2という変数を作成し、その中でgeocode()関数を使用します。括弧内に、place_1とplace_2の変数を渡し、Nominatim APIを使用することで、2つの場所を取得します。取得後、格納します。
次に、lat1,long1とlat2,long2という変数を作成し、2つの場所の緯度と経度を取得し、それぞれの変数に格納します。
格納後、length_1とlength_2という変数を作成し、その中に2つの場所の緯度と経度を取得した変数を格納します。
最後にdistance.distance()関数を使用し、2つの場所の距離を測定します。測定結果をprint()関数で取得します。
■実行
このスクリプトを「distance_measurement.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、今回指定した2つの場所(大阪城と心斎橋駅)の距離が測定され結果が出力されることが確認できました。
コメント