Geolocation 利用GPS坐标计算最短距离
我想知道借助GPS坐标计算最短距离的公式,精度>=5米 我已经检查了哈弗森公式和大圆距离公式。但它们适用于远距离计算。如果我们讨论MTR中的精度,应该使用哪个公式?如果(long0,lat0)是一个点,而(long1,lat1)是另一个点: 对于小距离,您可以使用:Geolocation 利用GPS坐标计算最短距离,geolocation,gps,geometry,Geolocation,Gps,Geometry,我想知道借助GPS坐标计算最短距离的公式,精度>=5米 我已经检查了哈弗森公式和大圆距离公式。但它们适用于远距离计算。如果我们讨论MTR中的精度,应该使用哪个公式?如果(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
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\u地球
=地球半径
通过分解出地球和/或假设cos(lat0)=cos(lat1),可以进一步简化此公式。如果(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\u地球
=地球半径
您可以通过分解出r_earth
和/或假设cos(lat0)=cos(lat1)来进一步简化此公式。在地球形状的WGS84近似值上精确到毫米级(很明显,地球与WGS84的一致程度不同,这将是过分的)
几年前,我实现了一些算法。如果您对算法有任何疑问,请随时询问,因为代码中没有注释
一个潜在的问题是,这些算法在海平面上工作,不考虑高度差。最好改为使用直线距离
经度φ、纬度λ和高度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(λ - λ'))
使用以下参数值
a = 6378137m
b = (a·297.257223563)/298.257223563
在WGS84近似地球形状的基础上精确到毫米级(很明显,地球与WGS84的一致程度不高,这将是过分的)
几年前,我实现了一些算法。如果您对算法有任何疑问,请随时询问,因为代码中没有注释
一个潜在的问题是,这些算法在海平面上工作,不考虑高度差。最好改为使用直线距离
经度φ、纬度λ和高度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(λ - λ'))
使用以下参数值
a = 6378137m
b = (a·297.257223563)/298.257223563
谢谢,我正在使用SIM18 GPS模块,该模块用于车辆跟踪器。对于跟踪应用,我们需要准确的结果。它适合跟踪应用吗?@Prakesh:我不知道你的意思。你认为它不够准确吗?你说过你不想使用大圆公式,因为你的距离很小。对于小距离,该公式将足够精确。如果它不符合您的要求,您必须使用大圆公式。非常感谢。“我会查一查,然后给你结果。”托马拉克·格雷特·卡尔:普拉卡什说他对长途旅行不感兴趣。所以我假设人们可以忽略地球是椭球体,甚至忽略地球表面在特定的小距离上不是平坦的。@Curd:他根本没有这么说。他所说的只是他想要相当准确。此外,即使在短距离内,如果您在该位置的地球半径值是错误的,那么您的三角学也将是错误的。谢谢,我正在使用SIM18 GPS模块,该模块用于车辆跟踪器。对于跟踪应用,我们需要准确的结果。它适合跟踪应用吗?@Prakesh:我不知道你的意思。你认为它不够准确吗?你说过你不想使用大圆公式,因为你的距离很小。对于小距离,该公式将足够精确。如果它不符合您的要求,您必须使用大圆公式。非常感谢。“我会查一查,然后给你结果。”托马拉克·格雷特·卡尔:普拉卡什说他对长途旅行不感兴趣。所以我假设人们可以忽略地球是椭球体,甚至忽略地球表面在特定的小距离上不是平坦的。@Curd:他根本没有这么说。他所说的只是他想要相当准确。而且,即使在很短的距离内,如果你在那个地方的地球半径值是错误的,那么你的三角学也会是错误的。