当前位置: 首页 > 知识库问答 >
问题:

如何确定地理点(纬度、经度对)是否位于连接两个地理点的线上

长孙鸿振
2023-03-14

我正在创建一个java应用程序,它为车辆在其路线的下一站提供估计到达时间(eta)。车辆发送它的当前位置(纬度和经度)以及它所遵循的路线。路线是一条多线,它的终点是该路线上的站点。每个站点由一个地理标志(纬度、经度对)表示。此外,路线来自一组已知路线,即沿路线的每个站点的位置(纬度、经度)是已知的。我想确定vehical在其路线的下一站的eta。我已经预先计算了沿着一条路线从停靠点A移动到停靠点B所需的时间。(例如考虑一条公共汽车路线)。因此,一旦我得到当前位置(它可能是一个停靠点位置或一条路线上两个停靠点之间的某个位置),我就可以找出从当前位置到下一站的距离。从这个距离,我可以通过添加预先计算的停靠时间来计算到达下一站以及路线上所有其他站点所需的时间。现在,我的问题是

>

如果1)为真,如何确定当前位置位于路线上的哪两个停止位置之间(因此我可以计算从当前位置到下一个停止位置的距离。)

如果是笛卡尔坐标系统,很容易确定一个点是否位于由两个endpoint连接的线上。地理点(纬度、经度对)如何做到这一点。我在网上搜索过,有计算两个地理点之间距离的方法,但没有找到任何方法来确定一个地理点是否位于两个地理点之间的线上

共有1个答案

应和光
2023-03-14

在笛卡尔坐标系的情况下,很容易组成一条穿过两点的直线方程(因为这条直线可能是唯一的)。对于球体,可以画几条线,这些线穿过表面上的两点。更重要的是,在某些情况下,可以通过两点画几条等长的线。因此,在流行的GIS库中没有这样的API也就不足为奇了(但专门的数学包可以包含这种东西)。

>

  • 大卫·华莱士已经提到了正确的道路

    对多段线的每条线段应用上述规则。然后选择与车辆位置和段终点之间预期距离偏差最小的段。该段将是路线的当前部分。

    回到库:也许流行的库是通过某种近似来实现的。例如,在不大的城市的情况下,可以使用笛卡尔近似(我在SUMO中遇到了这样的功能。该工具是专门为交通模拟设计的。它使用平面2D坐标)。

  •  类似资料:
    • 问题内容: 如何检查地理点是否在给定shapefile的区域内? 我设法在python中加载了shapefile,但无法继续进行下去。 问题答案: 这是对yosukesabai答案的改编。 我想确保要搜索的点与shapefile位于同一投影系统中,因此我为此添加了代码。 我不明白他为什么要进行包含测试(在我的测试中,没有它,事情似乎也一样工作),所以我删除了它。 我还改进了注释,以更好地解释正在发

    • 我正在尝试这样做,当我启动我的应用程序时,手机将通过一个lat和lang点的ArrayList放大并居中到我设置多段线的区域。 我在genymotion中启动应用程序,它会放大,然后以我设置的lat/lang ArrayList点为中心。目前,我只得到一张几乎显示全球的地图,我必须手动放大到我设置的折线。

    • 本文向大家介绍Android编程获取地理位置的经度和纬度实例,包括了Android编程获取地理位置的经度和纬度实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程获取地理位置的经度和纬度。分享给大家供大家参考,具体如下: 在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息。看如下实例:新建android应用程序TestLoc

    • 在下图中,您可以看到从一个点(黑色圆圈)到其3个相关点()绘制了3条直线。 图像 问题 如何用两点间距离的百分比来计算每条直线上两点间的经纬度? 例如,如果我想得到一个位置,以便能够沿着每一条线绘制额外的圆,相差20%? 我现在有什么代码 上面代码所做的唯一事情是为每个点绘制一个圆,并从主圆(点a)到其他圆(点B)绘制一条线 我几乎需要知道如何计算点A及其相关点之间的多个坐标,按距离的百分比计算。

    • 本文向大家介绍百度地图经纬度转换到腾讯地图/Google 对应的经纬度,包括了百度地图经纬度转换到腾讯地图/Google 对应的经纬度的使用技巧和注意事项,需要的朋友参考一下 实现目的:将百度地图经纬度 转换到 腾讯地图/Google 对应的经纬度. 方法1:使用代码进行转换 存在的问题:转换之后误差大,基本不可用 方法2: 该网站提供转换服务,坐标较为准确,可用,后台调用没有仔细研究 http:

    • 我正在尝试将Google Places API集成到我的应用程序中。现在我正在查找手机的当前位置,如何将获得的经度和纬度嵌入以下URL,而不是“location=34.0522222,-118.2427778” "https://maps.googleapis.com/maps/api/place/search/xml?location=34.0522222,-118.2427778