Как рассчитать расстояние, пройденное за путешествие пользователя?

В моей базе данных есть несколько тысяч строк с широтой и долготой.

В PHP, Как я могу рассчитать общее расстояние, пройденное пользователем в пути, сохраненное в моей базе данных, в виде точек широты и долготы?

Есть ли математическое уравнение, на которое я могу ссылаться или что-то еще? В моей системе я буду выполнять этот расчет в очереди, а затем кэшировать его, поскольку путь пользователя не изменится после того, как моя система записала его, поэтому эффективность не является проблемой.

В идеале я хотел бы, чтобы на выходе была получена сумма пройденного расстояния в милях.

Спасибо!


ОБНОВИТЬ: Вот пример кода того, что я сделал до сих пор.

$distance = 0;
$earthRadius = 6371;

for($i = 0; $i < $journey->data->count(); $i++)
{
$currentData = $journey->data->get($i);
$previousData = $journey->data->get($i-1);

if($previousData == null) continue;

$dLat = deg2rad($currentData->latitude - $previousData->latitude);
$dLon = deg2rad($currentData->longitude - $previousData->longitude);
$a = sin($dLat / 2) * sin($dLat / 2) +
cos(deg2rad($currentData->latitude)) *
cos(deg2rad($previousData->latitude)) *
sin($dLon / 2) * sin($dLon / 2);
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
$distance += $earthRadius * $c;
}

// $distance should be a total in kilometers?

Это правильно?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]