2011-07-01 96 views
1

我目前正在開發一個GPS項目。我讀過一個xml文件,我可以打印出minLat,maxLat,minLon,maxLon形式的經度和緯度範圍。 Way,Relation和Node屬性,如id,user,uid,version,visible,changeset和timestamp。我還可以打印標籤鍵和值以及參考。我現在的問題是,我想用經度和緯度來計算兩點之間的距離,但我不清楚它是如何以及我打印出來的哪些屬性真的需要這樣做。所以請我需要一些幫助!我想計算GPS中的距離

回答

1

您需要使用Haversine公式計算此值。 這裏是一個Perl腳本,這正是這一點的一個片段,我建議考慮看看它的一些更好的解釋:http://jan.ucc.nau.edu/~cvm/latlon_formula.html

,這裏是一個問題的更深入的解釋:http://www.movable-type.co.uk/scripts/latlong.html

haversine公式:

a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2) 
c = 2.atan2(√a, √(1−a)) 
d = R.c  

其中R是地球半徑(平均半徑= 6,371km);注意角度需要以弧度傳遞給trig函數!

(源是上面的鏈路)

+0

我應該使用minlat,maxlat,minlon和maxlon來計算它嗎? – lampardchelsea

+0

林有點不確定他們代表什麼,但我猜測它的粗略計算你的位置(你是minlat最小值和maxlat最大值),所以也許你需要計算差異(不確定)。 – tskulbru

+0

是的,它們是xml文件中的屬性邊界。但是我也有來自Node標籤的經度和緯度,這就是爲什麼我不知道我應該用哪個緯度和經度計算重量。 – lampardchelsea