【发布时间】:2019-03-30 08:54:42
【问题描述】:
我正在构建一个谷歌地图搜索片段,我可以指定一个位置和一个“半径”。然后,我尝试获取半径搜索相交的已定义区域(在我的数据库中定义为多边形)的结果。
我目前正在使用以下查询(为了清晰起见,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 英里半径范围内搜索时,我收到了数据库中的所有多边形。
我的查询基于我找到的其他一些松散的答案,但现在我对自己可能做错了什么感到有些茫然。我在网上发现的大多数问题是在多边形或半径内查找特定位置,但在这里我需要知道我的半径搜索是否与我创建的多边形相交。
任何帮助将不胜感激!谢谢。
【问题讨论】: