mysql - 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]
解决方案
你可以看看空间数据类型..对于mysql和fot这些你可以使用mysqlst_contain
函数但是由于mysql没有圆函数你可以建立一个与圆相似的几个点的poligon并使用这个近似。这不是一个精确的解决方案,但实际上应该给你一个接近你预期的结果
推荐阅读
- sql - 如何修复 SQL 触发器
- typescript - 为什么我可以将接口分配给没有任何值的变量?
- python - 尝试使用 python pyspark.sql.types lib 读取使用数据类型创建的表时出现 Tableau to Athena 错误
- r - 按 R 组汇总数据
- java - Springboot:使用 REST 服务发布新对象时出现类型定义错误
- javascript - 尝试导入错误:“Outlet”未从“react-router-dom”导出
- javascript - 我们如何创建像“arguments”这样的类数组对象?
- python - 使用 Pandas 导入数据时遇到错误
- flutter - Flutter:使用多个图像资产后应用程序崩溃
- python - 调用时类内的函数不起作用(python)