确定球体上的纬线矩形和圆形是否重叠

Nic*_*son 8 language-agnostic gis math geometry trigonometry

假设我有以下内容:

  • 由最小和最大纬度和经度定义的区域(通常是"纬度 - 长度",但除了某些投影外,它实际上不是矩形).
  • 一个圆,由中心纬度/长度和半径定义

我该如何确定:

  1. 两个形状是否重叠?
  2. 圆圈是否完全包含在矩形内?

我正在寻找一个完整的公式/算法,而不是数学课程本身.

use*_*811 2

  • 是的,如果盒子的角包含圆心。
  • 是的,如果任何盒子角位于圆心半径内。
  • 是的,如果盒子包含圆心的经度,并且最接近圆心纬度的盒子纬度的经度交点在圆心的半径内。
  • 是的,如果盒子包含圆心的纬度,并且最短交点方位距圆心的半径距离处的点“超出”最近的盒子经度;其中最短交点方位角是通过查找从圆心到纬度为零且经度“超出”最近的框经度的点的初始方位角来确定的。
  • 不,否则。

假设:

  • 您可以找到从 A 点到 B 点的最小航向的初始方位。
  • 您可以找到两点之间的距离。

第一次检查很简单。第二次检查只需要找到四个距离。第三次检查只需要找到从圆心到(最近框纬度,圆心经度)的距离。

第四个检查需要找到最接近圆心的边界框的经度线。然后找到距离圆心最远的经线所在的大圆的中心。找到从圆心到大圆心的初始方位角。找到该轴承上距圆心的点圆半径。如果该点位于距离圆中心最近的经度线的另一侧,则圆和边界框在该侧相交。

我觉得这应该是有缺陷的,但是我一直没能发现。

我似乎无法解决的真正问题是找到完美包含圆的边界框(对于不包含极点的圆)。最小/最大纬度的方位似乎是圆心和圆半径/(球体周长/4)纬度的函数。在赤道附近,它下降到 pi/2(东)或 3*pi/2(西)。当中心接近极点且半径接近球周长/4 时,方位角接近零(北)或 pi(南)。