Як розрахувати відстань між двома точками в PHP

Сніппет

Є багато додатків, у яких корисно знати відстань між двома координатами широти та довготи. Ось функція PHP, яка полегшує обчислення.

downloadcopy
<?php
function calcDistance($departureLatitude, $departureLongitude, $arrivalLatitude, $arrivalLongitude){
    $a1 = deg2rad($arrivalLatitude);
    $b1 = deg2rad($arrivalLongitude);
    $a2 = deg2rad($departureLatitude);
    $b2 = deg2rad($departureLongitude);
    $res = 2 * asin(sqrt(pow(sin(($a2 - $a1) / 2), 2) + cos($a2) * cos($a1) * pow(sin(($b2 - $b1) / 2), 2)));
    return 6371008 * $res;
}

// Ось приклад роботи функції з двома координатами між Нью-Йорком та Лондоном.
$point1 = array(40.712772, -74.006058);
$point2 = array(51.509865, -0.118092);
$distance = calcDistance($point1['0'], $point1['1'], $point2['0'], $point2['1']);
echo $distance . ' meters';