A вот ещё один восхитительный скрипт, который я использовал в реальном production на работе – было необходимо вычислить расстояние между двумя локациями, зная их координаты. Я не силён в математике, так что не стал изобретать велосипед и просто использовал очень лаконичную формулу, адаптировав её для PHP:
<?php
$earthRadius = 6371; // Kilometers
$xLatitude = deg2rad(/** TODO */);
$xLongitude = deg2rad(/** TODO */);
$yLatitude = deg2rad(/** TODO */);
$yLongitude = deg2rad(/** TODO */);
$longitudeDelta = $xLongitude - $yLongitude;
$angle = atan2(
sqrt(
pow(cos($xLatitude) * sin($longitudeDelta), 2) +
pow(cos($yLatitude) * sin($xLatitude) - sin($yLatitude) * cos($xLatitude) * cos($longitudeDelta), 2)
),
sin($yLatitude) * sin($xLatitude) + cos($yLatitude) * cos($xLatitude) * cos($longitudeDelta)
);
echo $angle * $earthRadius;