17 lines
781 B
Text
17 lines
781 B
Text
option angle radians ' the default
|
|
sub haversine(lat1, lon1, lat2, lon2)
|
|
dim EarthRadiusKm = 6372.8 ' Earth radius in kilometers
|
|
dim latRad1 = RAD(lat1)
|
|
dim latRad2 = RAD(lat2)
|
|
dim lonRad1 = RAD(lon1)
|
|
dim lonRad2 = RAD(lon2)
|
|
dim _diffLa = latRad2 - latRad1
|
|
dim _doffLo = lonRad2 - lonRad1
|
|
dim sinLaSqrd = sin(_diffLa / 2) ^ 2
|
|
dim sinLoSqrd = sin(_doffLo / 2) ^ 2
|
|
dim computation = asin(sqrt(sinLaSqrd + cos(latRad1) * cos(latRad2) * sinLoSqrd))
|
|
return 2 * EarthRadiusKm * computation
|
|
end sub
|
|
|
|
print using "Nashville International Airport to Los Angeles International Airport ####.########### km", haversine(36.12, -86.67, 33.94, -118.40)
|
|
print using "Perth, WA Australia to Baja California, Mexico #####.########### km", haversine(-31.95, 115.86, 31.95, -115.86)
|