2011-07-01 22 views
1

現在私はgpsプロジェクトに取り組んでいます。私はxmlファイルを読んだので、minLat、maxLat、minLon、maxLonの形で経度と緯度の境界を表示することができます。 id、user、uid、version、visible、changeset、timestampのようなWay、Relation、Nodeの各プロパティがあります。私はまた、タグのキーと値と参照を印刷することができます。私の問題は、緯度と経度を使って2点間の距離を計算したいのですが、どのようにしてそれを行うのか不明です。だから私はいくつかの助けが必要です!GPSで距離を計算したい

答えて

1

Haversine式を使用して計算する必要があります。ここで はまさにこれを行うのperlスクリプトの抜粋ですが、私はいくつかのより良い説明のためにそれを見てみてお勧め:http://jan.ucc.nau.edu/~cvm/latlon_formula.html

そしてここでは、問題のより深い説明です:http://www.movable-type.co.uk/scripts/latlong.html

半正矢式を:

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

Imは少し表現していますが、あなたの位置の大まかな計算を推測しています(minlatとmaxlatで最小値です)ので、差分(不確実)を計算する必要があります。 – tskulbru

+0

はい、それらはxmlファイルの属性境界です。しかし、Nodeタグからの緯度と経度もあります。そのため、ウェイトを計算するために使用する緯度と経度のどちらが本当にわからないのです。 – lampardchelsea