У меня есть таблица под названием flags
, которая содержит столбец с именем coordinates
, который заполнен точками MySQL. Мне нужно выполнить запрос, где я получаю все флаги в круге на основе положения широты и долготы с радиусом 100 м.
С точки зрения использования это основано на позиции пользователя. Например, мобильный телефон предоставит пользователю широту и долготу, а затем передаст его в эту часть API. Затем он до API создаст невидимый круг вокруг пользователя с радиусом 100 метров, а затем вернет флаги, которые находятся в этом круге.
В этой части API я не уверен, как создать, поскольку я не уверен, как использовать SQL для создания этого невидимого круга и выбирать точки только в пределах этого радиуса.
Возможно ли это? Есть ли пространственная функция MySQL, которая поможет мне сделать это?
Я считаю, что функция Buffer()
может это сделать, но я не могу найти документацию о том, как ее использовать (например, пример SQL). В идеале мне нужен ответ, который показывает мне, как использовать эту функцию или ближайшую к ней. Где я храню эти координаты в качестве геопространственных точек, я должен использовать геопространственную функцию, чтобы делать то, что я прошу максимизировать эффективность.
Таблица флагов:
- ID
- координаты
- имя
Пример строки:
1 | [GEOMETRY - 25B] | Tenacy AB
Для таблицы флагов у меня есть широта, долгота и восток и север (UTM)
Расположение пользователя - это стандартная широта/долгота, но у меня есть библиотека, которая может конвертировать эту позицию в UTM