From: Earl F. Glynn (73257.3527@CompuServe.COM) Subject: Re: how to determine distance between lat/long points? Newsgroups: sci.math Date: 1996/01/29 FUNCTION arcos (x: REAL): REAL; BEGIN IF x = 1.0 THEN arcos := 0.0 ELSE IF x = 0.0 THEN arcos := 0.5*pi ELSE arcos := 0.5*pi - ARCTAN( x / SQRT(1.0 - x*x) ) END {arcos}; FUNCTION GreatCircle (lat1,lng1, lat2,lng2: REAL {degrees}): REAL {miles}; VAR RadiansPerDegree: REAL; BEGIN RadiansPerDegree := pi/180; lat1 := RadiansPerDegree * lat1; lng1 := RadiansPerDegree * lng1; lat2 := RadiansPerDegree * lat2; lng2 := RadiansPerDegree * lng2; GreatCircle := 3956.67 {miles or 6367.650 km} * arcos( SIN(lat1)*SIN(lat2) + COS(lat1)*COS(lat2)*COS(lng1-lng2) ) END {GreatCircle}; -- Earl F. Glynn Staff Scientist E for M Corporation, Cardiology Products Division 73257.3527@compuserve.com