查找数据库中的哪些圆圈区域包含地图上的特定点
find which circle areas in db contain specific point on map
我在 db 中存储了一个由圆心 (lat,lon) 和半径表示的圆区域。字段:id、lat、lon、point、radius
现在我在地图上有一些其他点。
我的目标是找到这个点存在于哪些区域。
已经具有搜索指定区域中所有点的功能,但现在我需要一些不同的行为并找到包含指定点的所有区域。
如上述那样工作的查询看起来如何?
我研究了一下,发现在mysql 5.7中有更多的空间功能。升级附带的 SST_Distance_Sphere 对我有用!所以决定在我的服务器上进行升级并使用这个 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
我在 db 中存储了一个由圆心 (lat,lon) 和半径表示的圆区域。字段:id、lat、lon、point、radius 现在我在地图上有一些其他点。
我的目标是找到这个点存在于哪些区域。 已经具有搜索指定区域中所有点的功能,但现在我需要一些不同的行为并找到包含指定点的所有区域。
如上述那样工作的查询看起来如何?
我研究了一下,发现在mysql 5.7中有更多的空间功能。升级附带的 SST_Distance_Sphere 对我有用!所以决定在我的服务器上进行升级并使用这个 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