Subject: Re: [BoundaryPoint] Fwd: Great circle distances
Date: Oct 11, 2001 @ 15:28
Author: Anton Sherwood (Anton Sherwood <bronto@...>)
Prev    Post in Topic    Next [All Posts]
Prev    Post in Time    Next


>> Cos D = (sinA * sinB) + (cosA * cosB*cos DL)

I use, and recommend to programmers, a form that is easier to remember.
It is quicker if, for example, you have a list of points and you want to
find all the distances among them.

Get the cartesian coordinates of each point:
x = cos(lat)*cos(lon)
y = cos(lat)*sin(lon)
z = sin(lat)

The angular distance between two points is the inverse cosine of the dot
product of their coordinates: acos(a.x*b.x + a.y*b.y + a.z*b.z)

This is equivalent to the purely trigonometric approach, but uses only
one trig function per measurement.

--
Anton Sherwood -- br0nt0@... -- http://ogre.nu/
............ unemployment 2002, here i come! ............