给定一对 (lat,long) 和偏移纬度找到经度

Find a longitude given a pair of (lat,long) and an offset latitude

在大地坐标系 (wgs84) 中,我有一对(纬度,经度)表示 (45,50)(60,20)。我还说一对新的纬度和经度位于连接这两个的线上,并且与 (45,50)(45.1, x) 的偏移量为 0.1 deg lat。我如何找到这个新点?我尝试的是应用直线方程

y = mx+c
m = (lat1 - lat2)/ long1-long2)
c = lat1 - m * long1

但这似乎给出了错误的结果。

您使用的方程描述了二维空间中的一条直线 cartesian coordinate system

经度和纬度描述了 spherical coordinate system 中的一个点。 球坐标系不是笛卡尔坐标系。

回答了类似的问题 here

你的问题是m的计算。你已经扭转了局面!

正常公式为:

a = (y1 - y2) / (x1 - x2)

所以你的情况是:

m = (long2 -long1) / (lat1 - lat2)

所以你会得到 m = -2

而且你还反过来计算了c。

正常是:

b = y1 - a * x1

所以你应该这样做:

c = long1 - m * lat1

所以你会得到 c = 140。

公式为:

long = -2 * lat + 140

下面给出了另一种思考方式。结果一样,理所当然。

两个坐标之间的地线不是直线。它是在圆形物体(即地球)的表面上绘制的一条线。会绕地球一圈。

然而,该线上的所有坐标仍将通过一条直线。

这是因为坐标表示从地球中心到您正在查看的点的矢量角度。这两个角度与赤道(纬度)和格林威治(经度)相比。

因此您需要设置一个公式来描述该线的所有坐标。

在您的情况下,纬度从 45 变为 60,即增加 15。

您的经度从 50 变为 20,即减少 30。

所以你的公式将是:

(lat(t), long(t)) = (45, 50) + (15*t, -30*t) for t in [0:1]

现在你可以计算出达到 (45.1, x) 的 t 值,然后你可以计算出 x。