RosettaCodeData/Task/Haversine-formula/Tbas/haversine-formula.tbas
2023-07-01 13:44:08 -04:00

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)