给定一对 (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。
在大地坐标系 (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。