Я пытаюсь вычислить расстояние между двумя точками, хранящимися в столбце SQL типа точки.
Пользователи могут указать свой родной город, и мое приложение позволит им искать разные вещи вокруг них.
Моя проблема с запросом, я выбираю все столбцы, относящиеся к родному городу пользователя, и сохраняю их в переменных. Хотя я не знаю, как манипулировать типом данных SQL Point в PHP.
Когда я пишу это:
var_dump($coordinates); // city coordinates that MySQL will fetch
PHP сообщит мне, что это строка при отображении нечитаемых символов.
Я попытался извлечь долготу и широту с помощью этого оператора SQL и сохранить их в переменных:
'SELECT ST_X(coordinates) AS longitude, ST_Y(coordinates) AS latitude FROM cities';
Но этот запрос
SELECT * FROM table a
INNER JOIN cities b ON a.cityId = b.id
WHERE (acos(sin(radians(ST_Y(b.coordinates)))
* sin(radians(*ANY_VALUE*))
+ cos(radians(ST_Y(b.coordinates)))
* cos(radians(*ANY_VALUE*))
* cos(radians(ST_X(b.coordinates))
- radians(*ANY_VALUE*)))
* 6378137) <= 50000
Не будет работать с этими переменными, пока он работает, если я введу его вручную в PhpMyAdmin с любыми координатами.
Любой совет?