MariaDB:查找从纬度和经度点开始的圆形半径是否与多边形相交

MariaDB:查找从纬度和经度点开始的圆形半径是否与多边形相交,mariadb,geo,Mariadb,Geo,我正在构建一个谷歌地图搜索块,通过它我可以指定一个位置和一个“半径”。然后,我尝试获取半径搜索相交的定义区域(在我的数据库中定义为多边形)的结果 我目前正在使用以下查询(为了更清楚起见,使用php代码): 区域数据库使用“多边形”多边形字段设置,该字段保存纬度和经度值的多边形数据。然而,在以5英里为半径进行搜索时,我收到了数据库中的所有多边形 我是根据我找到的其他一些松散的答案提出这个问题的,但现在我有点不知道我可能做错了什么。我在网上发现的大多数问题都是在多边形或半径内查找特定位置,但这里我需

我正在构建一个谷歌地图搜索块,通过它我可以指定一个位置和一个“半径”。然后,我尝试获取半径搜索相交的定义区域(在我的数据库中定义为多边形)的结果

我目前正在使用以下查询(为了更清楚起见,使用php代码):

区域数据库使用“多边形”多边形字段设置,该字段保存纬度和经度值的多边形数据。然而,在以5英里为半径进行搜索时,我收到了数据库中的所有多边形

我是根据我找到的其他一些松散的答案提出这个问题的,但现在我有点不知道我可能做错了什么。我在网上发现的大多数问题都是在多边形或半径内查找特定位置,但这里我需要知道半径搜索是否与我创建的多边形相交


任何帮助都将不胜感激!谢谢。

对于有类似问题的人,我发现了我遇到的问题

在数据库中存储“polygon”值时,必须提供“longitude-lation”值,而我是以另一种方式存储它们的。我想这是因为lng/lat是x/y格式

然后,我还使用了一个类中的方法来生成一个圆形多边形。然后就这样使用它:

SELECT id FROM Regions WHERE ST_Intersects(poly, GEOMFROMTEXT('POLYGON((" . implode(",", $circle) . "))', 0))
其中
$circle
$longitude$latitude
字符串值的数组

ST_BUFFER方法可能仍然有效,但现在我已经可以使用了,我不打算再使用它了:)

SELECT id FROM Regions WHERE ST_Intersects(poly, GEOMFROMTEXT('POLYGON((" . implode(",", $circle) . "))', 0))