我在地图上有两个圆圈,包括经度,纬度(点())和半径,现在我知道是否有一个SQL函数,如果这些圆相交,会返回true吗?
寻求帮助。
答案 0 :(得分:1)
尝试:
If(ST_Distance(POINT(Long1, Lat1),POINT(Long2, Lat2))<=Radius1+Radius2, "INTERSECT","NO INTERSECTION")
这基本上是询问圆心之间的距离是&lt; =它们的半径之和。如果是 - 它们相交。
答案 1 :(得分:0)
尝试MySQL 5.6中提供的ST _ ***()函数。
更多信息。
https://dev.mysql.com/doc/refman/5.6/en/spatial-relation-functions-object-shapes.html
答案 2 :(得分:0)
你确实需要使用ST _ *()函数和空间运算符函数,但Zamrony的答案相当模糊。因此,您需要做的是将您的圆转换为几何数据类型,然后您可以使用st_intersect()来查看2个圆是否相交:
返回一个几何图形,表示与距离的所有点 几何值g小于或等于d的距离,如果是,则为NULL 任何参数都是NULL。
请阅读ST_Buffer_Strategy()的描述以及如何确定构成圆几何的点。