使用谷歌地图计算实际行进距离

时间:2011-03-21 15:40:09

标签: java android list google-maps maps

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

我搜索了这个问题,但是没有找到任何方法。

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

我或多或少地对这个问题感到难过,任何帮助都非常感激

移动平台是Android

谢谢, MilindaD

3 个答案:

答案 0 :(得分:1)

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

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

希望这会有所帮助;)

答案 1 :(得分:1)

我曾经做过一次而且相当简单。使用LocationListener的服务。在每个onLocationChanged()保存当前位置,最后您可以使用Location.distanceBetween()计算这些保存位置之间的所有距离。

请注意,通过更快的跟踪,它会变得更加准确。散步时,您需要的更新少于驾驶快速车。这可以使用LocationManager.requestLocationUpdates()中的minDistance和/或minTime进行设置。

答案 2 :(得分:0)

你可以尝试从起点(IIRC他们的Long和Lat)然后到终点并计算出两者之间的欧氏距离(见http://en.wikipedia.org/wiki/Euclidean_distance)。

我猜你有什么更好的关注然后两点throgh,所以进行第三次(或更多)阅读并计算A-> B然后添加B-> C.

重复您需要的结果。

获得旅程的时间。开始一个时钟并在结束时停止它(如果你想的话,你可以再次使用间歇点)