書式: distgps(緯度1,経度1,緯度2,経度2[,方位])
2地点の緯度経度座標からその直線距離(km単位)を求める。 緯度経度は10進表記で与える。 地球の球状を考慮した計算を行っている。 緯度経度の指定は、60進表記には対応しておらず10進表記に変換しておくことが必要である。 60進法で表記された度分秒をそれぞれとすると、 10進の座標は
で計算できる。
また方位については、北緯と東経はプラスで表記し、南緯と西経はマイナスで表記する。
例えば、大阪駅(北緯34.702398,東経135.495188),東京駅間(北緯35.681391,東経139.766103)の距離を求めるには 以下のとおり指定すればよい。
distgps(34.702398,135.495188,35.681391,139.766103)
またエベレスト(北緯32.655556,東経79.015833),からアコンカグア(南緯27.987778,西経86.944444)の距離は、以下のとおり指定すればよい。
distgps(32.655556,79.015833,-27.987778,-86.944444)
$ more dat1.csv point1,point2,lat1,lon1,lat2,lon2 osaka,tenma,34.702398,135.495188,34.704923,135.512233 osaka,tokyo,34.702398,135.495188,35.681391,139.766103 osaka,kobe,34.702398,135.495188,34.679453,135.178221 osaka,Fuji,34.702398,135.495188,35.360556,138.727500 Evelest,Aconcagua,32.655556,79.015833,-27.987778,-86.944444 Denali,Kilimanjaro,63.069444,-151.007222,-3.075833,37.353333 $ mcal c='distgps(${lat1},${lon1},${lat2},${lon2})' a=rsl i=dat1.csv o=rsl1.csv #END# kgcal a=rsl c=distgps(${lat1},${lon1},${lat2},${lon2}) i=dat1.csv o=rsl1.csv $ more rsl1.csv point1,point2,lat1,lon1,lat2,lon2,rsl osaka,tenma,34.702398,135.495188,34.704923,135.512233,1.585046048 osaka,tokyo,34.702398,135.495188,35.681391,139.766103,405.774306 osaka,kobe,34.702398,135.495188,34.679453,135.178221,29.12042213 osaka,Fuji,34.702398,135.495188,35.360556,138.727500,304.7527532 Evelest,Aconcagua,32.655556,79.015833,-27.987778,-86.944444,16956.12242 Denali,Kilimanjaro,63.069444,-151.007222,-3.075833,37.353333,11362.37758