Ham-APRS-FAP
view release on metacpan or search on metacpan
my $lat0 = shift @_;
my $lon1 = shift @_;
my $lat1 = shift @_;
# decimal to radian
$lon0 = deg2rad($lon0);
$lon1 = deg2rad($lon1);
$lat0 = deg2rad($lat0);
$lat1 = deg2rad($lat1);
# Use the haversine formula for distance calculation
# http://mathforum.org/library/drmath/view/51879.html
my $dlon = $lon1 - $lon0;
my $dlat = $lat1 - $lat0;
my $a = (sin($dlat/2)) ** 2 + cos($lat0) * cos($lat1) * (sin($dlon/2)) ** 2;
my $c = 2 * atan2(sqrt($a), sqrt(1-$a));
my $distance = $c * 6366.71; # in kilometers
return $distance;
}
( run in 0.620 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )