Посчитать расстояние между двумя точками в координатах координаты
/*
* Посчитать расстояние между двумя точками в координатах
* @src http://dmitry.im/mysql-dist/
* @example
* $lat1 = 55.130974;
$lon1 = 61.420328;
$lat2 = 55.130682;
$lon2 = 61.421776;
$res = $this->getDistance($lat1, $lon1, $lat2, $lon2);
var_dump($res);
*/
public static function getDistance($lat1, $lon1, $lat2, $lon2) {
$lat1 *= M_PI / 180;
$lat2 *= M_PI / 180;
$lon1 *= M_PI / 180;
$lon2 *= M_PI / 180;
$d_lon = $lon1 - $lon2;
$slat1 = sin($lat1);
$slat2 = sin($lat2);
$clat1 = cos($lat1);
$clat2 = cos($lat2);
$sdelt = sin($d_lon);
$cdelt = cos($d_lon);
$y = pow($clat2 * $sdelt, 2) + pow($clat1 * $slat2 - $slat1 * $clat2 * $cdelt, 2);
$x = $slat1 * $slat2 + $clat1 * $clat2 * $cdelt;
return atan2(sqrt($y), $x) * 6372795;
}