- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!で"測地系WGS84の2点間距離をPerlで既述{{category GPSネタ}}
[2点の緯度経度から点間距離を計算するには?|http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200906/09060085.txt] ( http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200906/09060085.txt )を参考にやってみる
元ネタとなる"[2点の緯度経度から点間距離を計算するには?|http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200906/09060085.txt] ( http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200906/09060085.txt )"を参考にやってみる
# 測地系WGS84の2点間距離を求める(ヒュベニ(Hubeny) の距離計算式から)
# 呼出 &Hubeny ( 緯度Ba,経度La,緯度Bb,経度Lb ) ; 実数,実数,実数,実数
# 戻値 距離(m) ; 実数
sub Hubeny {
my($B0,$L0,$B1,$L1) = @_;
my $PI = 3.14159265358979653189;
my $E5 = (($B0+$B1)/360)*$PI;
my $F5 = ($B0-$B1);
my $G5 = ($L0-$L1);
my $H5 = 6334834/sqrt((1-0.006674*sin($E5)*sin($E5))**3);
my $I5 = 6377397/sqrt(1-0.006674*sin($E5)*sin($E5));
return (sqrt(($H5*$F5*$PI/180)*($H5*$F5*$PI/180)+($I5*cos($E5)*$G5*$PI/180)*($I5*cos($E5)*$G5*$PI/180)));
}