给定球形系统中的一个点,找到与已知直线成直角的直线

Find a line intersecting a known line at right angle, given a point in spherical system

我想计算直线 [x1, y1], [x2, y2] 与 球面几何 中给定点 [xp, xy] 的直角相交(线和点位于球体 - 地球 - 并以 latlon 形式给出)。

我的问题用一张图很容易描述:

平面上的 'flat' 几何计算公式可以在这里找到,例如:

您可以将绕球体行进的线表示为平面;直线等于平面和球体的交点。

求过点的垂线:

  1. 找到第一行的平面
  2. 将你的点投影到这个平面上
  3. 从三个点计算出一个新平面:您的原点、投影点和球心。

新平面表示垂直于通过该点的第一条线的线。

Pubby 在下面回答了正确的数学描述。


对于我的情况(计算距离很小,最大几公里),基于 墨卡托投影 的近似值足够准确。

您可以在此处找到包含大量代码示例的重要资源:

http://wiki.openstreetmap.org/wiki/Mercator