查找 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 中的哪些圆形区域包含地图上的特定点的主要内容,如果未能解决你的问题,请参考以下文章

查找适合特定区域的 UILabel 的子字符串

在地图上查找城市或区域的多边形

使用 R 中的 SP 包查找哪些多边形包含哪些点时遇到问题

用于查找从点到多边形的最小距离的 Javascript 代码(由 html 区域定义)

Google地图自动填充功能不包含地址搜索中的邮政编码

查找图中的内部区域