2013-03-13 96 views
1

我有(示例列表)[[1,2], [3,4], [5,6], [7,8], ...]的形式List<List<Double>>。這些基本上是緯度和經度的列表,我想計算它們之間的距離。我有(Lat1, Lon1, Lat2, Lon2)的距離計算方法。計算緯度/長度列表之間的距離

即在第一次迭代中從上述列表中取出(1,2,3,4)並計算距離。在下一次迭代中,我需要通過(3,4,5,6)等等。然後我可以添加所有迭代的距離來計算總距離。

所以我寫了這個方法寫入了4個值。我在開發for循環時遇到問題,它會將正確的值傳遞給計算距離的方法。

+0

請發表您寫下的代碼 – 2013-03-13 00:43:07

+0

@MarcinS。我在編寫for循環時遇到了困難,這就是在這裏發佈它的原因。 – Intern 2013-03-13 00:48:29

+0

[如何使用經度和緯度值計算兩個位置之間的距離]的可能重複(http://stackoverflow.com/questions/6981916/how-to-calculate-distance-between-two-locations-using-their-經度和緯度) – 2013-03-13 11:22:41

回答

1

你可以試試:

List<List<Double>> locations = ... 
double totalDistance = 0; 
for (int i = 0; i + 1 < locations.size(); i++) { 
    List<Double> a = locations.get(i); 
    List<Double> b = locations.get(i + 1); 
    totalDistance += calcDistance(a, b); 
} 

calcDistance()可以計算出你所提到的兩個位置之間的距離的方法。

+0

在我的情況下,CalcDistance需要4點(1,2)和(3,4)來計算前2個點之間的距離(說x)。那麼它將需要(3,4)和(5,6)並計算距離(比如y)。在此之後,我可以將x + y加起來找出總距離。 – Intern 2013-03-13 00:56:05

+0

@Intern我只是想告訴你一些提示。例如,你可以調用'calcDistance(a.get(0),a.get(1),b.get(0),b.get(1))'... – 2013-03-13 01:15:46

相關問題