Lat_to_Travel = CurLat - TargetLat
Long_to_Travel = CurLong - TargetLong
Time_to_Travel = ETA - now
如果距离相对较小,则可以假设这三个维度上的线性进展(*)。然后,您需要确定要显示的中间位置的数量,比如 10 个,并相应地计算每个中间点
NbOfIntermediates = 10 // for example
Lat_at_Intermediate(n) = CurLat + (1/NbOfIntermediates * Lat_to_travel)
Long_at_Intermediate(n) = CurLong + (1/NbOfIntermediates * Long_to_travel)
Time_at_Intermediate(n) = now + (1/NbOfIntermediates * Time_to_travel)
所有这一切中最复杂的是保持单位正常。
(*)关于是否可以假设线性进展的一些考虑......
显然,物理元素的现实细节(海流,风,能见度......)在这个问题上可能比地理更重要 -空间数学。
假设车辆以恒定速度直线行驶,[通常]可以假设纬度维度的线性[从技术上讲,地球不完全是一个球体,这并不完全正确,但该死的接近]。然而,在包含相对较大纬度变化的较长距离上,沿经度维度的角度进展不是线性的。原因是当我们远离赤道时,以线性英里(或公里......)表示的经度度数会减少。对于不同纬度的位置,下表应该大致了解这种影响:
一个度数的纬度长度近似示例
(经度)在
海里
0 60 吉隆坡、波哥大、内罗毕
20 56.5 墨西哥城、麦加、孟买、里约热内卢
45 42.5 日内瓦、波士顿、西雅图、北京、惠灵顿(新西兰)
60 30 奥斯陆,斯德哥尔摩,安克雷奇 AK,圣彼得堡 俄罗斯
请参阅这个方便的在线计算器来计算特定纬度的值。
了解这一点的另一种方法是查看在佛罗里达州杰克逊维尔或加利福尼亚州圣地亚哥的纬度向东(或向西)行驶,需要 52 英里才能覆盖一个经度;在蒙特利尔或西雅图的纬度,只需40英里。