地理位置 - 如何检查 2 个圆圈是不是重叠
Posted
技术标签:
【中文标题】地理位置 - 如何检查 2 个圆圈是不是重叠【英文标题】:Geolocations - How to check if 2 circles are overlapping地理位置 - 如何检查 2 个圆圈是否重叠 【发布时间】:2015-11-15 19:53:37 【问题描述】:假设我们有 2 个位置(纬度、经度),每个位置都有一个半径(可能彼此不同),形成一个圆圈。如何检查这两个圆圈是否重叠?
【问题讨论】:
【参考方案1】:检查中心之间的距离是否小于半径之和。
说圆 A 和 B 半径为 Ar 和 Br 和坐标 (Ax, Ay) 和 (Bx,By),分别是圆之间的距离
D = sqrt( (Ax - Bx)2 + (Ay - By)2)
它们重叠时
D r + Br
但是有一个问题:圆圈的中心位于一个球体上。它们之间最短的距离是一条直线,位于球体表面之下。它们之间沿着表面的距离会更大。例如,北极和南极之间的距离是 2 个地球半径,但表面上的路径将是 2π 个地球半径。此外,这些圆圈不重叠。因此,上述等式仅在距离相对较小时成立。
【讨论】:
感谢您的回答:) 不客气 - 我更新了这个问题并提出警告。如果您使用 API、数据库或库,则可能有内置功能可以准确计算距离。 关于您上次的编辑,没有问题,因为距离将是以上是关于地理位置 - 如何检查 2 个圆圈是不是重叠的主要内容,如果未能解决你的问题,请参考以下文章