我正在製作一個應用程序來跟蹤通過GPS驅動的路線,對於我使用SQLite的數據庫。當前位置發生變化時,數據(緯度,經度,日期)將被保存到數據庫中,所以我在我的數據庫中有許多座標+日期的列表。Android java從sqlite計算距離很多座標
現在,我想要計算整個路線的距離。我知道開始和結束位置以及中間位置。我也知道如何計算兩個位置之間的距離。我不知道如何計算所有分段的距離。有人能幫我嗎?
我這是怎麼計算兩個位置之間的距離:
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);
}
我可以在兩個座標之間計算,但我琬t要計算的整個路線 –
您需要計算每個段和總和。由於錯誤彙總,這也很複雜。 – KarlP
我也在想它,但我不知道如何...與列表,或類似的東西? –