我想知道用GPS坐标进行计算的最短距离计算公式,准确度> = 5 mtr。使用GPS坐标进行最短距离计算
我检查了Haversine公式和大圆距公式。但它们适合长距离计算。如果我们谈论mtrs的准确性,应该使用哪个公式?
我想知道用GPS坐标进行计算的最短距离计算公式,准确度> = 5 mtr。使用GPS坐标进行最短距离计算
我检查了Haversine公式和大圆距公式。但它们适合长距离计算。如果我们谈论mtrs的准确性,应该使用哪个公式?
如果(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)。
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
谢谢,我正在与SIM18 GPS模块工作,其在车辆跟踪器使用。为跟踪应用程序,我们需要准确的结果它适合跟踪应用程序吗? – Prakash
@Prakesh:我不知道你的意思。你认为这不够准确吗?你说你不想使用大圆公式,因为你有很小的距离。对于小距离,这个公式将是足够准确的。如果它不符合你的要求,你必须使用大圆公式。 – Curd
非常感谢。我会检查并找到结果。 – Prakash