【问题标题】:Calculate real time distance traveled using google maps使用谷歌地图计算实时行驶距离
【发布时间】:2011-07-19 19:05:31
【问题描述】:

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

我用谷歌搜索了这个问题,但找不到任何方法。

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

我或多或少被这个问题难住了,非常感谢任何帮助

移动平台是安卓

谢谢, 米琳达

【问题讨论】:

  • 当你说“实时距离”时,你是在实时更新安卓系统,还是在一个班次或一天结束时只计算一次总距离?
  • real time distance 你是指real traveled way 还是某种he stood at x miles for 5 minutes before going on
  • 我的意思是实际行驶的公里数,另一种说法是有一个司机有一部安卓手机,他的仪表盘显示他在开始和到达之后已经行驶了 0 公里他的目的地是 10 公里,Android 手机应该跟踪行驶的距离,并在旅程结束时说 10 公里。另请注意 - 在旅程完成之前,无需显示已行驶的距离

标签: java android list google-maps maps


【解决方案1】:

您可以尝试取起点(IIRC 他们的 Long 和 Lat)然后是终点并计算出两者之间的欧几里得距离(参见 http://en.wikipedia.org/wiki/Euclidean_distance)。

我猜你的 reloution 比两点更好,所以阅读第三次(或更多)并计算出 A->B,然后添加 B->C。

重复您需要的重新定位。

获取旅程的时间。开始一个时钟并在最后停止它(如果你愿意,你也可以采取间歇性的点)

【讨论】:

    【解决方案2】:

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

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

    希望这会有所帮助;)

    【讨论】:

      【解决方案3】:

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

      请记住,随着跟踪速度的加快,它会变得更加准确。与开快车相比,散步需要的更新更少。这可以在 LocationManager.requestLocationUpdates() 中使用 minDistance 和/或 minTime 进行设置。

      【讨论】:

        猜你喜欢
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多