MySQL搜索地理位置重叠?

Posted

技术标签:

【中文标题】MySQL搜索地理位置重叠?【英文标题】:MySQL Search for GeoLocation Overlaps? 【发布时间】:2018-07-30 15:52:17 【问题描述】:

我正在努力采用一种半有效的方式来执行以下操作。最好通过 mysql

为此系统执行的每次搜索都包括该个人的地理坐标和范围。 (所以本质上是一个半径和中心点)。

我希望能够搜索另一个坐标,并计算其中有多少搜索包含该区域。

为了实现这一点,存储数据的最佳方式是什么?我将如何构建查询以获得该结果?

例子:

DATA
Search 1 [-56.1, 43.2], 100 mile radius
Search 2 [-78.23, 45.1], 250 mile radius
Search 3 [-80.1, 44], 10 mile radius
Search 4 [-81.2, 44.4], 50 mile radius

How many searches covered point [-80.1, 44]

【问题讨论】:

你可以看看空间数据类型 .. for mysql 我们正在使用空间类型,但我不确定这将如何用于这种类型的搜索?也许我错过了一些东西。你有什么特别的想法吗? 给我看一个真实的样本。 见上文,这基本上就是我在做的。 @answer 按照您的建议发布 【参考方案1】:

你可以看看空间数据类型 .. 对于 mysql 和 fot 这些你可以使用 mysql st_contain 函数,但由于 mysql 没有圆形函数,你可以构建一个具有多个相似点的 poligon用一个圆圈并使用这个 aproximate 。这不是一个精确的解决方案,但实际上应该给你一个接近预期的结果

【讨论】:

以上是关于MySQL搜索地理位置重叠?的主要内容,如果未能解决你的问题,请参考以下文章

Magento 地理搜索和产品推荐

使用 mysql 进行地理位置搜索查询

MySQL - 如何使用地理位置数据加快搜索速度?

地理位置 - 如何检查 2 个圆圈是不是重叠

优化位置搜索mysql脚本

MySQL:多个纬度和经度的附近位置