根据我的曲目详细信息跟踪距离和时间

Pra*_*tik 1 android google-maps google-directions-api

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

Mer*_*lin 6

我会创建一个名为waypoint的类

class WayPoint
{
   DateTime depart; //some date time container
   DateTime arrive; //some date time container
   Coordinate position; //some gps coordinate
}
Run Code Online (Sandbox Code Playgroud)

然后创建这些类的列表,允许在任何位置插入元素,这对于路由更改有帮助:

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);
Run Code Online (Sandbox Code Playgroud)

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

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));
Run Code Online (Sandbox Code Playgroud)