查找 db 中的哪些圆形区域包含地图上的特定点
Posted
技术标签:
【中文标题】查找 db 中的哪些圆形区域包含地图上的特定点【英文标题】:find which circle areas in db contain specific point on map 【发布时间】:2017-01-01 19:09:48 【问题描述】:我在 db 中存储了一个由中心点 (lat,lon) 和圆半径表示的圆区域。字段:id、lat、lon、point、radius 现在我在地图上还有一个点。
我的目标是找出这个点存在于哪些区域。 已经有搜索指定区域中所有点的功能,但现在我需要一些不同的行为并找到所有区域都包含指定点。
如前所述,查询会怎样?
【问题讨论】:
你忘了问问题。 @GurwinderSingh 更新 也许这有帮助:movable-type.co.uk/scripts/latlong-db.html 【参考方案1】:我做了研究,发现在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 中的哪些圆形区域包含地图上的特定点的主要内容,如果未能解决你的问题,请参考以下文章