pip3 install --upgrade geographiclib
from geographiclib.geodesic import Geodesic
import math
geod = Geodesic.WGS84 # define the WGS84 ellipsoid
# 空港の位置のテーブル うーん不細工だ。。
NRT = { "lat":(35,45,55),"lon":(140,23,8) }
HND = { "lat":(35,33,12),"lon":(139,46,52) }
IBR = { "lat":(36,11,0) ,"lon":(140,25,14) }
ITM = { "lat":(34,47,4) ,"lon":(135,26,21) }
KIX = { "lat":(34,26,3) ,"lon":(135,13,58) }
UKB = { "lat":(34,37,58),"lon":(135,13,26) }
SFO = { "lat":(37,37,8) ,"lon":(-122,22,30) }
LAX = { "lat":(33,56,33),"lon":(-118,24,29) }
#
## 度分秒を度に変換
def dms2dd (dd,mm,ss) :
if dd >= 0 :
ret = float(dd) + float(mm)/float(60)+float(ss)/(60*60)
else :
ret = float(dd) - (float(mm)/float(60)+float(ss)/(60*60))
return ret
##
(d,m,s) = NRT["lat"]
lat1 = dms2dd (d,m,s)
(d,m,s) = NRT["lon"]
lon1 = dms2dd (d,m,s)
##
(d,m,s) = UKB["lat"]
lat2 = dms2dd (d,m,s)
(d,m,s) = UKB["lon"]
lon2 = dms2dd (d,m,s)
#######
print ("出発", lat1,lon1)
print ("到着":, lat2,lon2)
##
g = geod.Inverse(lat1, lon1, lat2, lon2)
## print(g)
print("距離は {:.3f} m.".format(g['s12']))
print("方位角は {:.12f} m.".format(g['azi1']))
print("方位角は {:.12f} m.".format(g['azi2']+180.0))
# 空港の緯度経度
# NRT-RJAA : 座標 北緯35度45分55秒 東経140度23分08秒
# HND-RJTT : 座標 北緯35度33分12秒 東経139度46分52秒
# IBR-RJAH : 座標 北緯36度11分00秒 東経140度25分14秒
# ITM-RJOO : 座標 北緯34度47分04秒 東経135度26分21秒
# KIX-RJBB : 座標 北緯34度26分03秒 東経135度13分58秒
# UKB-RJBE : 座標 北緯34度37分58秒 東経135度13分26秒
#
# SFO-KSFO : 座標 北緯37度37分08秒 西経122度22分30秒
# LAX-KLAX : 座標 北緯33度56分33秒 西経118度24分29秒