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

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Измерение расстояния между двумя координатами в PHP

Сообщение Anonymous »

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

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

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

Вот код:

Код: Выделить всё

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;

}
}
Проверяя его на некоторых заданных точках, находящихся на общественных расстояниях, я не получил надежного результата.

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

Подробнее здесь: https://stackoverflow.com/questions/100 ... tes-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»