【问题标题】:Circle intersect MySQL圆相交 MySQL
【发布时间】:2016-03-08 10:13:40
【问题描述】:

我在地图上有两个圆圈,分别是经度、纬度 (point()) 和半径,现在我知道如果这些圆圈相交,是否有返回 true 的 SQL 函数?

谢谢帮助。

【问题讨论】:

    标签: mysql geospatial


    【解决方案1】:

    试试:

    If(ST_Distance(POINT(Long1, Lat1),POINT(Long2, Lat2))<=Radius1+Radius2, "INTERSECT","NO INTERSECTION")
    

    这基本上是在询问圆心之间的距离是否

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 是的,但所有 ST_***() 函数都使用点而不是带半径的圆。
      【解决方案3】:

      您确实需要使用 ST_*() 函数 空间运算符函数,但 Zamrony 的答案相当模糊。所以,你需要做的是将你的圆转换成几何数据类型,然后你可以使用 st_intersect() 来查看这两个圆是否相交:

      1. 使用ST_Buffer()函数将点和半径转换为几何数据类型:

      返回一个几何图形,它代表距离 几何值 g 小于或等于 d 的距离,如果为 NULL 任何参数都是 NULL。

      请阅读ST_Buffer_Strategy() 的描述以及如何确定构成圆几何形状的点。

      1. 使用ST_Intersects() 函数确定两个几何图形是否相互交叉。

      【讨论】:

      • 好的,我也试试这个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多