Измерение расстояния между двумя координатами в PHP

Привет, у меня есть необходимость рассчитать расстояние между двумя точками, имеющими широту и длину.

Я хотел бы избежать любого вызова внешнего API.

Я попытался реализовать формулу Haversine в PHP:

Вот код:

<code>class CoordDistance
 {
    public $lat_a = 0;
    public $lon_a = 0;
    public $lat_b = 0;
    public $lon_b = 0;

    public $measure_unit = 'kilometers';

    public $measure_state = false;

    public $measure = 0;

    public $error = '';



    public function DistAB()

      {
          $delta_lat = $this->lat_b - $this->lat_a ;
          $delta_lon = $this->lon_b - $this->lon_a ;

          $earth_radius = 6372.795477598;

          $alpha    = $delta_lat/2;
          $beta     = $delta_lon/2;
          $a        = sin(deg2rad($alpha)) * sin(deg2rad($alpha)) + cos(deg2rad($this->lat_a)) * cos(deg2rad($this->lat_b)) * sin(deg2rad($beta)) * sin(deg2rad($beta)) ;
          $c        = asin(min(1, sqrt($a)));
          $distance = 2*$earth_radius * $c;
          $distance = round($distance, 4);

          $this->measure = $distance;

      }
    }
</code>

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

Я не понимаю, есть ли ошибка в исходной формуле или в моей реализации

Ответы на вопрос(11)

Ваш ответ на вопрос