地理位置-如何检查两个圆是否重叠

6
假设我们有两个位置(纬度,经度),每个位置都有一个半径(它们可能不同),形成一个圆。如何检查这两个圆是否重叠?

enter image description here

1个回答

8

检查圆心之间的距离是否小于半径之和。

设圆 A 和圆 B 分别具有半径 ArBr,坐标分别为 (Ax, Ay) 和 (Bx, By),两圆之间的距离是

    D = sqrt( (Ax - Bx)2 + (Ay - By)2 )

    D < Ar + Br

时它们重叠。

但要注意:这些圆的圆心位于一个球体上。它们之间的最短距离是一条直线,位于球面下方。在球面上沿着路径的距离将会更大。例如,赤道与南极之间的距离为 2 地球半径,但在球面上的路径长度为 地球半径。此外,这些圆不重叠。因此,上述方程只在距离相对较小时成立。


谢谢你的回答 :) - Senpai
1
不用谢 - 我在问题中加入了一个警告。如果您正在使用API、数据库或库,那么可能有内置的功能可以准确地计算距离。 - Kenney
1
关于您最后的编辑,没有问题,因为距离将小于100米。 - Senpai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接