Я создаю фрагмент поиска по карте Google, в котором я могу указать местоположение и «радиус».Затем я пытаюсь получить результаты определенных областей (определенных как полигоны в моей БД), которые пересекает поиск по радиусу.
В настоящее время я использую следующий запрос (код php для некоторой ясности):
$km = ($miles * 1.852) * 1000;
$sql = "SELECT * FROM Regions WHERE ST_Intersects(poly, ST_BUFFER(ST_GeomFromText('POINT({$lat} {$lng})'), {$km}))"
База данных Regions имеет полигональное поле poly, которое содержит данные полигона значений широты и долготы.Однако при поиске в радиусе 5 миль я получаю все полигоны в базе данных.
Я основал запрос на некоторых других свободных ответах, которые нашел, но теперь яв некоторой растерянности относительно того, что я могу делать неправильно.Большинство проблем, которые я обнаружил в Интернете, заключается в поиске определенных местоположений в пределах многоугольника или радиуса, но здесь я должен знать, пересекается ли мой поиск по радиусу с созданными мной многоугольниками.
Любая помощь будет в значительной степениоценили!Спасибо.