2017-01-01 4 views
0

Я сохранил в db области окружности, представленные центральной точкой (lat, lon) и радиусом круга. Поля: id, lat, lon, point, radius Теперь у меня есть еще одна точка на карте.Найдите, какие области круга в db содержат определенную точку на карте

Моя цель - найти, в каких областях эта точка существует. Уже есть функция для поиска всех точек в указанной области, но теперь мне нужно немного по-другому вести себя и найти все области, содержащие указанную точку.

Как будет выглядеть запрос, который будет работать, как указано?

+0

Вы забыли задать вопрос. – GurV

+0

@GurwinderSingh обновлено –

+0

возможно это помогает: http://www.movable-type.co.uk/scripts/latlong-db.html –

ответ

0

Я провел исследование и обнаружил, что в mysql 5.7 существует больше пространственных функций. Тот, который поставляется с обновлением, - это SST_Distance_Sphere, который работал для меня! So решил сделать обновление на своем сервере и использовать этот SQL:

SELECT ST_Distance_Sphere(POINT(lng, lat), POINT(19.93875777348876 , 50.061379843744234)) as Radius 
FROM locations 
WHERE ST_Distance_Sphere(POINT(lng, lat), POINT(19.93875777348876 , 50.061379843744234)) <= radius 
Смежные вопросы