15 lines
579 B
Text
15 lines
579 B
Text
#APPTYPE CONSOLE
|
|
|
|
PRINT "Distance = ", Haversine(36.12, -86.67, 33.94, -118.4), " km"
|
|
PAUSE
|
|
|
|
FUNCTION Haversine(DegLat1 AS DOUBLE, DegLon1 AS DOUBLE, DegLat2 AS DOUBLE, DegLon2 AS DOUBLE) AS DOUBLE
|
|
CONST radius = 6372.8
|
|
DIM dLat AS DOUBLE = D2R(DegLat2 - DegLat1)
|
|
DIM dLon AS DOUBLE = D2R(DegLon2 - DegLon1)
|
|
DIM lat1 AS DOUBLE = D2R(DegLat1)
|
|
DIM lat2 AS DOUBLE = D2R(DegLat2)
|
|
DIM a AS DOUBLE = SIN(dLat / 2) * SIN(dLat / 2) + SIN(dLon / 2) * SIN(dLon / 2) * COS(lat1) * COS(lat2)
|
|
DIM c AS DOUBLE = 2 * ASIN(SQRT(a))
|
|
RETURN radius * c
|
|
END FUNCTION
|