地理位置 - 如何检查 2 个圆圈是否重叠
Geolocations - How to check if 2 circles are overlapping
假设我们有 2 个位置(纬度、经度),每个位置都有一个半径(可能彼此不同),形成一个圆。如何检查这两个圆圈是否重叠?
检查中心之间的距离是否小于半径之和。
假设圆 A 和 B 的半径为 Ar 和Br,坐标(Ax 、Ay) 和 (Bx, By)分别是圆圈之间的距离是
D = sqrt( (Ax - Bx)2 + (Ay - By)2 )
它们在
时重叠
D < Ar + Br
但是有一个问题:圆心位于球体上。它们之间的最短距离是球体表面下方的直线。它们之间沿着表面的距离会更大。例如,北极和南极之间的距离是 2 个地球半径,但在表面上的路径将是 2π 个地球半径。此外,这些圆圈不重叠。所以,上面的等式只有在距离比较小时才成立。
假设我们有 2 个位置(纬度、经度),每个位置都有一个半径(可能彼此不同),形成一个圆。如何检查这两个圆圈是否重叠?
检查中心之间的距离是否小于半径之和。
假设圆 A 和 B 的半径为 Ar 和Br,坐标(Ax 、Ay) 和 (Bx, By)分别是圆圈之间的距离是
D = sqrt( (Ax - Bx)2 + (Ay - By)2 )
它们在
时重叠D < Ar + Br
但是有一个问题:圆心位于球体上。它们之间的最短距离是球体表面下方的直线。它们之间沿着表面的距离会更大。例如,北极和南极之间的距离是 2 个地球半径,但在表面上的路径将是 2π 个地球半径。此外,这些圆圈不重叠。所以,上面的等式只有在距离比较小时才成立。