緯度経度から2地点間の距離を計算する

計算すると言いながら、自分で計算するわけではありません。国土地理院のAPI を利用させてもらうだけです。 

入力は世界測地系の10進緯度経度(xx.yyyyy度)です。出力はJSON形式としました。

#!/bin/bash
lat1=`getparstr $# "$*" "lat1"` #出発点緯度
lon1=`getparstr $# "$*" "lon1"` #出発点経度
lat2=`getparstr $# "$*" "lat2"` #到着点緯度
lon2=`getparstr $# "$*" "lon2"` #到着点経度
output=`\
wget "http://vldb.gsi.go.jp/sokuchi/surveycalc/surveycalc/bl2st_calc.pl?\
outputType=json&ellipsoid=GRS80&\
latitude1=${lat1}&\
longitude1=${lon1}&\
latitude2=${lat2}&\
longitude2=${lon2}" -q -O /dev/stdout`
printf "%s\n" ${output}

例えばdistGSIという名前にするならば、

f:id:S_E_Hyphen:20210729180516p:plain

といった具合に、東京駅(北緯35.6816度、東経139.7677度)と神田駅(北緯35.6918度、東経139.7706度)間の距離が1169mである、と求めることができます。

下段のようにjqコマンドも活用すれば、修飾なしの距離の値を取り出すこともできます。