Код: Выделить всё
$latitudeTo = $postcoderow[latitude];
$float_latitudeTo = floatval($latitudeTo);
$longitudeTo = $postcoderow[longitude];
$float_longitudeTo = floatval($longitudeTo);
Однако пост -коды будут только из Великобритании и используют следующую функцию PHP
function calculateDistance($float_latitudeFrom, $float_longitudeFrom, $float_latitudeTo, $float_longitudeTo, $earthMeanRadius = 3440) {
$deltaLatitude = deg2rad($float_latitudeTo - $float_latitudeFrom);
$deltaLongitude = deg2rad($float_longitudeTo - $float_longitudeFrom);
$a = sin($deltaLatitude / 2) * sin($deltaLatitude / 2) +
cos(deg2rad($float_latitudeFrom)) * cos(deg2rad(float_latitudeTo)) *
sin($deltaLongitude / 2) * sin($deltaLongitude / 2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a));
return $earthMeanRadius * $c;
}
//Function call with the coordinates.
$miles = calculateDistance($float_latitudeFrom, $float_longitudeFrom, $float_latitudeTo, $float_longitudeTo, $earthMeanRadius = 3440);
< /code>
Я получаю значения 3000+ миль, возвращенных (я просто эхо '. $ Miles.') < /p>
Как мне хранить $ float_latitudeto ... и т. Д. в качестве двойных, так как они являются десятичными из базы данных, однако конвертируются в строку, которая вызывает ошибки. Я думаю, что сама функция PHP в порядке, просто как я анализирую значения.
Подробнее здесь: https://stackoverflow.com/questions/339 ... oordinates
Мобильная версия