PHP / SQL — Как манипулировать пространственным типом данных Point SQL в PHP?

Я пытаюсь вычислить расстояние между двумя точками, хранящимися в столбце 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 с любыми координатами.

Любой совет?

0

Решение

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

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector