代码之家  ›  专栏  ›  技术社区  ›  RiddlerDev

MySQL搜索地理位置重叠?

  •  -1
  • RiddlerDev  · 技术社区  · 8 年前

    我正在努力寻找一种半有效的方法来完成以下工作。最好是通过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]
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   ScaisEdge    7 年前

    你可以看看空间数据类型。。对于mysql和fot,可以使用mysql st_contain 函数,但由于MySQL没有圆函数的原因,您可以构建一个具有与圆相似的几个点的子表达式,并使用此子表达式。这不是一个精确的解,但实际上应该给你一个接近你所期望的结果