Проверка расстояния между двумя точками широты и долготы - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь построить скрипт, который бы вычислял расстояние между двумя точками в милях.

Я искал это и нашел много скриптов, я использую этот:

function distance($lat1, $lon1, $lat2, $lon2, $unit) {
    if (($lat1 == $lat2) && ($lon1 == $lon2)) {
      return 0;
    }
    else {
      $theta = $lon1 - $lon2;
      $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
      $dist = acos($dist);
      $dist = rad2deg($dist);
      $miles = $dist * 60 * 1.1515;
      $unit = strtoupper($unit);
      if ($unit == "K") {
        return ($miles * 1.609344);
      } else if ($unit == "N") {
        return ($miles * 0.8684);
      } else {
        return $miles;
      }
    }
}

Я проверяю эти 2 пункта:

$lat1 = 38.5815719;
$lon1 = -121.4943996;

$lat2 = 41.9622;
$lon2 = -87.6747;

distance($lat1, $lon1, $lat2, $lon2, 'M');

Вывод 2081.4284148619.

Я пытался использовать карты Google, чтобы убедиться, что это расстояние примерно правильное, но ядумаю, что на странице карты нет такой опции.

Как проверить это расстояние?

...