<?php
/*
* SQL Function:
*
* delimiter //
* create function geoDistance(long1 decimal(14,10), lat1 decimal(14,10), long2 decimal(14,10), lat2 decimal(14,10)) returns decimal(10,2) BEGIN SET @long1 = long1*PI()/180; SET @lat1 = lat1*PI()/180; SET @long2 = long2*PI()/180; SET @lat2 = lat2*PI()/180; RETURN ACOS(SIN(@lat1) * SIN(@lat2) + COS(@lat1) * COS(@lat2) * COS(@long1 - @long2)) * 6371000; END; //
* delimiter ;
*/
function calculateDistance($lat_a,$lat_b,$long_a,$long_b) {
$lat_a = $lat_a * PI()/180;
$lat_b = $lat_b * PI()/180;
$long_a = $long_a * PI()/180;
$long_b = $long_b * PI()/180;
$distance =
acos(
sin($lat_a ) * sin($lat_b) +
cos($lat_a) * cos($lat_b) * cos($long_b - $long_a)
) * 6371;
return $distance;
}
?>