找到db中的哪些圆圈区域包含地图上的特定点

时间:2017-01-01 19:09:49

标签: mysql geolocation location spatial-query

我在db中存储了一个由中心点(lat,lon)和圆的半径表示的圆形区域。字段:id,lat,lon,point,radius 现在我在地图上还有其他一点。

我的目标是找出这一点存在的区域。 已经有一个搜索指定区域中所有点的功能,但现在我需要一些不同的行为,并找到包含指定点的所有区域。

如何查看符合上述要求的查询?

1 个答案:

答案 0 :(得分:0)

我做过研究,发现在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