Java 使用谷歌地图计算实时旅行距离

Java 使用谷歌地图计算实时旅行距离,java,android,list,google-maps,maps,Java,Android,List,Google Maps,Maps,需要使用谷歌地图查找实时行驶距离。这应该由手机应用程序本身计算。当我指的是实时,我指的是,例如,如果用户正在前往A点,用户可以通过多种方式到达该点,我想做的是计算用户实时旅行的总距离,而不仅仅是假设和计算两点之间的距离(这不会给出正确的答案) 我在谷歌上搜索这个问题,但找不到任何方法 我个人曾想过将手机上的经度和纬度存储在一个列表中,在用户到达目的地后,使用这些点计算距离。然而,这意味着我必须决定存储这些点的时间间隔(每1分钟左右),这意味着我将在列表中放置位置点,即使用户实际上仍然在同一条道路

需要使用谷歌地图查找实时行驶距离。这应该由手机应用程序本身计算。当我指的是实时,我指的是,例如,如果用户正在前往A点,用户可以通过多种方式到达该点,我想做的是计算用户实时旅行的总距离,而不仅仅是假设和计算两点之间的距离(这不会给出正确的答案)

我在谷歌上搜索这个问题,但找不到任何方法

我个人曾想过将手机上的经度和纬度存储在一个列表中,在用户到达目的地后,使用这些点计算距离。然而,这意味着我必须决定存储这些点的时间间隔(每1分钟左右),这意味着我将在列表中放置位置点,即使用户实际上仍然在同一条道路上,这是非常不必要的。除非有人知道如何在适当的时间存储点或其他解决方案

我在这个问题上多少有些困惑,非常感谢您的帮助

移动平台是Android

谢谢,
米林达

你可以试着先取起点(IIRC他们的Long和Lat),然后取终点,计算出两者之间的欧几里德距离(参见)

我猜你是什么样的一个更好的关系,然后两个点通过,所以采取第三次(或更多)阅读,并计算出a->B,然后添加B->C

重复上述步骤以进行所需的重新着色


要知道旅行的时间。启动一个时钟,并在结束时停止(如果需要,您也可以选择间歇点)

我认为最好的解决方案是每X秒保存一次位置,然后计算它们之间迭代的总距离,要获得时间,您只需查看最后一点和第一点之间的差异

这就是gps跟踪应用程序的工作原理


希望这有帮助;)

我做过一次,很简单。将服务与LocationListener一起使用。在每次onLocationChanged()保存当前位置时,最后可以使用Location.distanceBetween()计算这些保存位置之间的所有距离


请记住,跟踪速度越快,跟踪越准确。与开快车相比,散步需要的更新更少。这可以通过LocationManager.requestLocationUpdates()中的MindDistance和/或minTime进行设置。

当你说“实时距离”时,你是在用该距离实时更新Android吗,或者你是在一个班次或一天结束时只计算一次总距离吗?
实时距离
你是指
真正的旅行路线
还是某种
他在出发前在x英里处站了5分钟
?我的意思是实际行驶的公里数,另一种说法是,有一位司机有一部安卓手机,他的仪表盘显示他在出发时行驶了0公里,到达目的地后显示10公里,安卓手机应该跟踪行驶的距离,在旅程结束时显示10公里。另请注意-在完成行程之前,无需显示行驶的距离