圆与MySQL相交

时间:2016-03-08 10:13:41

标签: mysql geospatial

我在地图上有两个圆圈,包括经度,纬度(点())和半径,现在我知道是否有一个SQL函数,如果这些圆相交,会返回true吗?

寻求帮助。

3 个答案:

答案 0 :(得分:1)

尝试:

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

这基本上是询问圆心之间的距离是&lt; =它们的半径之和。如果是 - 它们相交。

答案 1 :(得分:0)

答案 2 :(得分:0)

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

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

    返回一个几何图形,表示与距离的所有点   几何值g小于或等于d的距离,如果是,则为NULL   任何参数都是NULL。

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

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