Php ile Latitude, Longitude koordinatlarını Kilometre, Mil ve Deniz mili olarak dönüştürmek için aşağıdaki fonksiyonu kullanabilirsiniz.
function distance(float $lat1, float $lon1, float $lat2, float $lon2, string $unit)
{
if (($lat1 == $lat2) && ($lon1 == $lon2)) {
return 0;
}
$dist = rad2deg(acos(sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($lon1 - $lon2))));
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
switch ($unit) {
case 'K':
case 'k':
return ($miles * 1.609344);
break;
case 'N':
case 'n':
return ($miles * 0.8684);
break;
default:
return $miles;
break;
}
}
Örnek Kullanım (Kilometre)
echo distance(40.7957034, 29.4226704, 40.8088656, 29.4512179, 'K');
Örnek Kullanım (Mil)
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "M");
Örnek Kullanım (Deniz mili)
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "N");