我正在创建一个 java 应用程序,它可以为车辆在其路线的下一站提供估计的到达时间 (eta)。车辆发送它的当前位置(纬度和经度)和它所遵循的路线。路线是一条折线,它的终点是沿该路线的站点。每个站点由一个地理点(纬度,经度对)表示。此外,路线来自一组已知路线,即沿路线的每个站点的位置(纬度、经度)是已知的。 我想确定车辆在其路线上的下一站的 eta。 我已经预先计算了从停靠点 A 沿路线移动到停靠点 B 所需的时间。(例如,考虑巴士路线)。因此,一旦我获得了当前位置(它可能是一个停靠点或沿路线的两个停靠点之间的某个位置),我就可以找出从当前位置到下一站的距离。根据该距离,我可以通过添加预先计算的停靠时间来计算到达下一站以及沿途所有其他站点所需的时间。现在,我的问题是
如何判断车辆传输的当前位置(经纬度)是否真的在路线沿线。
如果 1) 为真,如何确定当前位置位于沿路线的哪两个停靠点之间(这样我就可以计算从当前位置到下一个停靠点的距离。)
如果它是笛卡尔坐标系,则很容易确定一个点是否位于由两个端点连接的线上。如何为地理点(纬度,经度对)执行此操作。我在网上搜索过,有计算两个地理点之间距离的方法,但没有找到任何方法来确定一个地理点是否位于两个地理点之间的线上