我只想检查投影是否有一个点(纬度,经度)与 2 个点(纬度,经度)给出的弧相交,如果有,我想找到它(纬度,经度)。
能否将 (lat, long) 用作二维向量空间,使该问题与笛卡尔坐标中的问题类似?准确度如何?
虽然 Link 上的答案有助于获取到圆弧的距离,我如何知道交点是否位于用于查找大圆的点之间?另外,是否可以解决这个问题而不必使用切换到笛卡尔坐标?
最佳答案
有两种方法可以解决这个问题。
第一个假设两点之间有一条直线 - 尽管实际上,这样的线会与地球相交。
第二个实际上确定了两点之间的大圆路线,即实际沿着地球表面并连接两点的最小长度弧。为此,您必须使用坐标变换来生成两个表面点的方向余弦向量。称他们为 A 和 B。
要确定 C 是否位于该弧上,您不能像作弊并使用穿过地球的线段那样进行线性插值。相反,您还需要计算 C 的方向余弦。如果 Angular AC、BC 和 AB 都相等,则 C 位于 A 和 B 之间。可以通过计算相应方向余弦的点积并计算其反余弦来确定 Angular 。
关于javascript - 纬度/经度上的几何(弧上点的投影),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724560/