Как рассчитать расстояние от координат?Php

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

Сообщение Anonymous »

Я использую MySQLI с драйвером MySQlnd и использую функцию для получения координат длиной/LAT и рассчитываю расстояние между ними, однако у меня возникают проблемы со странными числами и ошибками, касающимися «ожидаемого двойного, строка». Затем я использую запрос Mysqli, чтобы уйти из базы данных и хранить их в переменной PHP, например, SO: < /p>

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

$latitudeTo = $postcoderow[latitude];
$float_latitudeTo = floatval($latitudeTo);
$longitudeTo = $postcoderow[longitude];
$float_longitudeTo = floatval($longitudeTo);
Другой набор Long/LAT одинаков (просто используя разные имена).
Однако пост -коды будут только из Великобритании и используют следующую функцию 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
Ответить

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

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

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

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

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