2011-12-16 239 views
0

我想知道用GPS座標進行計算的最短距離計算公式,準確度> = 5 mtr。使用GPS座標進行最短距離計算

我檢查了Haversine公式和大圓距公式。但它們適合長距離計算。如果我們談論mtrs的準確性,應該使用哪個公式?

回答

2

如果(long0,lat0)是一個點(long1,LAT1)其他:

對於小的距離,你可以使用:

x0 = long0 * r_earth * cos(lat0) 
y0 = lat0 * r_earth 
x1 = long1 * r_earth * cos(lat1) 
y1 = lat1 * r_earth 
dx = x0 - x1 
dy = y0 - y1 
d = sqrt(dx*dx + dy*dy) 

long =經度弧度
lat =緯度以弧度表示
r_earth =地球半徑

您可以通過分解進一步簡化此公式r_earth和/或通過假設cos(lat0)== cos(lat1)。

+0

謝謝,我正在與SIM18 GPS模塊工作,其在車輛跟蹤器使用。爲跟蹤應用程序,我們需要準確的結果它適合跟蹤應用程序嗎? – Prakash

+0

@Prakesh:我不知道你的意思。你認爲這不夠準確嗎?你說你不想使用大圓公式,因爲你有很小的距離。對於小距離,這個公式將是足夠準確的。如果它不符合你的要求,你必須使用大圓公式。 – Curd

+0

非常感謝。我會檢查並找到結果。 – Prakash

5

Vincenty's formulae在WGS84近似地球形狀(這顯然是過度殺傷,地球不符合WGS84的那種程度)時精確到毫米級。

幾年前,我爲distance calculation in Javascript實現了一些算法。隨意地詢問你是否對算法有任何疑問,因爲代碼缺乏評論。

一個潛在的問題是這些算法在海平面上工作並且不考慮高度差異。這可能是一個更好的主意,而不是convert to geocentrical cartesian coordinates和使用直線距離,而不是...

直接表達了點的經度φ,緯度λ和高度h的直線距離d

給出
k = √(a²·cos²φ + b²·sin²φ) 
r = (a²/k + h)·cosφ 
z = (b²/k + h)·sinφ 
d = √((z - z')² + r² + r'² - 2·r·r'·cos(λ - λ')) 

具有以下值的paramteres

a = 6378137m 
b = (a·297.257223563)/298.257223563