android - 根据我的跟踪详细信息跟踪距离和时间

标签 android google-maps google-directions-api

我正在 android 中进行 gps 跟踪以跟踪用户位置并提供记录轨迹的功能。我现在可以绘制路径我想用它来计算轨迹距离和时间,就像假设用户开始跟踪记录和现在移动到另一个位置我想计算谷歌地图中从开始到结束位置(用户位置更新)的总距离和时间旅行。我有计算 2 个位置的距离的函数,但不适合我的路线,因为路线在多段线中并且它是灵活的纬度/经度位置。是他们的任何 api 或谷歌为此提供的任何功能或服务。任何帮助或建议都将不胜感激。

最佳答案

我会创建一个名为 waypoint 的类

class WayPoint
{
   DateTime depart; //some date time container
   DateTime arrive; //some date time container
   Coordinate position; //some gps coordinate
}

然后创建这些类的列表,允许在任何位置插入元素,如果您的路线发生变化,这将很有帮助:

List<WayPoint> journey = new ArrayList<WayPoint>();

//just add your waypoints

journey.add(startWayPoint);
journey.add(wayPoint_1);
journey.add(wayPoint_2);
//...
journey.add(wayPoint_n_minus_2);
journey.add(wayPoint_n_minus_1);
journey.add(endWayPoint);

然后转换为数组并计算总数:

WayPoint[] wayPoints = journey.toArray();

double total_distance = 0.0f; //distance in metres
double total_travel_time = 0.0f; // time in hours

//start at index 1 because there are n-1 segments
if(wayPoints.length>1)
foreach(int i=1; i<wayPoints.length;i++)
{
  total_distance += calcDistanceBetween(
      wayPoints[i-1].position,
      wayPoints[i].position);

  total_time += calcTimeInHoursBetween(
      wayPoints[i-1].depart,
      wayPoints[i].arrive);
}

log.d("Total Distance",String.valueOf(total_distance));
log.d("Total Travel Time",String.valueOf(total_travel_time));

关于android - 根据我的跟踪详细信息跟踪距离和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266589/

相关文章:

java - 在 Java 文件而不是 xml 中定义颜色常量

android - 谷歌地图不显示标记

javascript - 如何同时显示谷歌地图和街景?

javascript - 谷歌地图信息窗口不起作用?

javascript - ( react )在谷歌地图上打开模式标记点击

ios - REQUEST_DENIED 到 Google Directions API

java - 搜索前将 ParseQuery 数组转为小写

Java 套接字 readInt EOFException

google-maps - 在 Google map 中绘制折线

java - 从 URL <b>/</b> 下载的 XML 文件无法识别