首页 > 解决方案 > MySQL搜索地理位置重叠?

问题描述

我正在努力采用一种半有效的方式来执行以下操作。理想情况下通过 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]

标签: mysqlgeolocationgeometry-surface

解决方案


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


推荐阅读