【发布时间】:2014-01-27 14:36:05
【问题描述】:
我正在为我使用 SQLite 的数据库制作一个用于通过 GPS 跟踪行驶路线的应用程序。当当前位置改变时,数据(纬度、经度、日期)将被保存到数据库中,所以我的数据库中有许多坐标+日期的列表。
现在,我想计算整条路线的距离。我知道开始和结束位置以及中间位置。我也知道如何计算两个位置之间的距离。我不知道如何计算所有段的距离。有人可以帮我吗?
这就是我计算两个位置之间距离的方式:
private double calculateDistance(double fromLong, double fromLat,double toLong, double toLat) {
double d2r = Math.PI / 180;
double dLong = (toLong - fromLong) * d2r;
double dLat = (toLat - fromLat) * d2r;
double a = Math.pow(Math.sin(dLat / 2.0), 2) + Math.cos(fromLat * d2r)
* Math.cos(toLat * d2r) * Math.pow(Math.sin(dLong / 2.0), 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double d = 6367000 * c;
return Math.round(d);
}
【问题讨论】:
-
我可以在两个坐标之间进行计算,但我不想计算整个路线
-
你需要计算每个段,并求和。由于错误聚合,这也很复杂。
-
我也在考虑这个,但我不知道如何......用一个列表,或者类似的东西?
-
是的,有一个列表或类似的东西 :-) 在问这里之前先尝试一下......
-
我试过但我失败了:D
标签: java android sqlite coordinates calculator