Haversine Formula for Rosetta
Posted: Tue Jan 03, 2017 10:24 pm
Here is some code for the Rosetta project.
This function calculates the distance between two points using their Latitude and Longitude.
This is close to the ASP sample, but adapted for SmartBASIC.
George.
This function calculates the distance between two points using their Latitude and Longitude.
This is close to the ASP sample, but adapted for SmartBASIC.
George.
Code: Select all
'*** LAT/LONG For Venice, FL
Lat1=27.07
Lon1=-82.44
'*** LAT/LONG For Sarasota, FL
Lat2=27.40
Lon2=-82.55
'*** Units: K=kilometers M=miles N=nautical miles
Unit$ = "M"
Result=Distance(Lat1,Lon1,Lat2,Lon2,Unit$)
PRINT "The Distance From Venice, FL to Sarasota, FL in Miles is: "&Result
DEF Distance(Lat1,Lon1,Lat2,Lon2,Unit$)
PI=3.14159265358979323846
Radius=6378.137
Lat1=(Lat1*PI/180)
Lon1=(Lon1*PI/180)
Lat2=(Lat2*PI/180)
Lon2=(Lon2*PI/180)
DLon=Lon1-Lon2
Answer=ACOS(SIN(Lat1)*SIN(Lat2)+COS(Lat1)*COS(Lat2)*COS(DLon))*Radius
IF UNIT$="M" THEN Answer=Answer*0.621371192
IF UNIT$="N" THEN Answer=Answer*0.539956803
RETURN Answer
ENDDEF