Всем привет.
Народ, подскажите пожалуйста как можно найти ближайшие точки на карте в заданном радиусе средствами mysql?
Есть таблица в бд станций метро с полем типа point.
Есть входные координаты lat, lng и радиус radius в метрах.
Вот что хочу сделать:
joxi.ru/8AnoWo4FjDkezr
То что на скрине реализовано через формулу с синусами и косинусами без поля point(в интернете и тут ее легко найти), но я хочу попробовать сделать именно с использованием поля point.
Пытался сделать так:
\DB::raw("ST_Length(ST_GeomFromText('LineString(48.713863164838116 44.497622953881574,48.71494233380111 44.51217125557791)')) as distance")
Если координаты явно указывать то длину линии находит, но в базе же координаты в другом виде(в бинарном либо POINT(x,y)).
Кто-нибудь сталкивался с такой задачей?
Добавлено:
Расстояние понял как вычислить:
\DB::raw('ST_Distance_Sphere(point,POINT(' . $res['lat'] . ', ' . $res['lng'] . ')) as distance')
Но вычисляет не корректно.
Если в точках координаты поменять местами то вычисляет точно.
Трансформацию точки как-то можно сделать в запросе?
Спасибо!