[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
{
Any navigators out there? I need formulas or source code to calculate
the distance between two points given the latitude and longitude
of each point. I'm trying to write some support software for my
Sony Pyxis GPS (global positioning system). }
Procedure Dist( Var xlat1,xlon1,xlat2,xlon2,xdist,ydist,distance : Real);
{
Returns the distance ( in km ) between two points on a tangent plane
on the earth.
}
Const
Km = 111.19;
C1 = 0.017453292;
Var
Xmlat,
cosm,
Adist : Real;
Begin { Dist }
{ Calculate cos of mean latitude }
Xmlat := (xlat1+xlat2)/2;
cosm := cos(xmlat*C1);
{ Calculate Y (N-S) distance }
ydist := (xlat2-xlat1)*km;
{ Calculate X (E-W) distance }
xdist := (xlon2-xlon1)*km*cosm;
{ Calculate total distance }
adist := xdist*xdist + ydist*ydist;
If adist >= 0 then
distance := sqrt(adist)
Else
distance := 0;
End; { Dist }
This is one I use in some wind calculations for an aircraft fitted with
GPS and LORAN-C.
Note that all Latitude And Longitudes are in Degrees with minutes and
seconds converted to decimal degrees.
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]