我正在 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/