地理位置 - 如何检查 2 个圆圈是不是重叠

Posted

技术标签:

【中文标题】地理位置 - 如何检查 2 个圆圈是不是重叠【英文标题】:Geolocations - How to check if 2 circles are overlapping地理位置 - 如何检查 2 个圆圈是否重叠 【发布时间】:2015-11-15 19:53:37 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

说圆 AB 半径为 ArBr 和坐标 (Ax, Ay) 和 (Bx,By),分别是圆之间的距离

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

它们重叠时

    D r + Br

但是有一个问题:圆圈的中心位于一个球体上。它们之间最短的距离是一条直线,位于球体表面之下。它们之间沿着表面的距离会更大。例如,北极和南极之间的距离是 2 个地球半径,但表面上的路径将是 个地球半径。此外,这些圆圈不重叠。因此,上述等式仅在距离相对较小时成立。

【讨论】:

感谢您的回答:) 不客气 - 我更新了这个问题并提出警告。如果您使用 API、数据库或库,则可能有内置功能可以准确计算距离。 关于您上次的编辑,没有问题,因为距离将是

以上是关于地理位置 - 如何检查 2 个圆圈是不是重叠的主要内容,如果未能解决你的问题,请参考以下文章

查找具有重叠地理点的半径的地理点

如何使用空间数据库检查 AIS 信号是不是从地理围栏发出?

如何检查地理位置是不是在半径范围内?

在python中查找地理数据中圆圈内的所有坐标

我们如何检查唯一 ID 的任意 2 个间隔是不是重叠?

地理围栏:如何识别对象(特征),使用 Oracle Spatial 重叠地理围栏边界?