This routine calculates the distance between two points (given the latitude/longitude of those points). It is being used to calculate the distance between two locations:

function distance($point1, $point2) { $EarthRadiusMeters = 6378137.0; // meters $dLat = ($point2[0] - $point1[0]) * pi() / 180; $dLon = ($point2[1] - $point1[1]) * pi() / 180; $a = sin($dLat / 2) * sin($dLat / 2) + cos($lat1 * pi() / 180) * cos($lat2 * pi() / 180) * sin($dLon / 2) * sin($dLon / 2); $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); return $EarthRadiusMeters * $c; }

Example:

$point1 = array(32.9697, -96.80322); $point2 = array(29.46786, -98.53506); echo distance($point1,$point2);

Result:

`434916.310601`

Note: Result as meters

Ellipsoidal parameters:

Name Major axis, a (km) Flattening (f) WGS84 6378.13700 1/298.257223563 GRS80/NAD83 6378.13700 1/298.257222101 WGS66 6378.145 1/298.25 GRS67/IAU68 6378.16000 1/298.2472 WGS72 6378.135 1/298.26 Krasovsky 6378.245 1/298.3 Clarke66/NAD27 6378.2064 1/294.9786982138

Image copyright: movable-type.co.uk

## No comments yet.