WGS84 米一经度函数
Posted
技术标签:
【中文标题】WGS84 米一经度函数【英文标题】:The WGS84 meters-in-a-degree-of-longitude function 【发布时间】:2014-02-13 08:13:42 【问题描述】:我找到了以纬度为单位的米函数,它给出了here:
111132.954 - 559.822 * cos(2 * phi) + 1.175 * cos(4 * phi) // where phi is geodetic latitude
对于经度函数,我能找到的最好的方程是它下面的那个,即
pi * a * cos(phi) / (180 * sqrt(1 - e^2 * sin^2(phi)))
看来(如图所示here)e
是椭球的偏心率,a
是赤道半径。 WGS84 是有问题的椭球体,我有a
和b
,所以我可以calculate e
directly 或told matter-of-factly,它是0.0818192
。
现在我的问题很简单:这是我应该使用的正确公式,以便与通常获得的 GPS 角度兼容吗?我的理解是,现在所有的 GPS 设备(事实上,所有的 GPS 设备曾经)都使用 WGS84 大地纬度和经度(大地纬度的假想角线实际上并没有穿过地球的中心,而是经度线确实),因此使用球面近似数学对我来说是愚蠢的。
发布这个问题的原因是为了得到这个行业的某个人的认可,他们可以为我验证我实际上并没有在错误地吠叫,或者我的假设存在严重错误。在我迄今为止进行的公认时间紧迫的研究中,我所看到的大多数解决方案都只是简单地使用基于球面经度和纬度的三角表达式。尽管它们可能足以满足我的需求,但当我知道我可以用大致相同的工作量获得更准确的值时,我拒绝使用它们。
【问题讨论】:
【参考方案1】:不,我认为这不是正确使用的公式:
对于每度米,对于几乎所有应用程序,只需将系数 cos(latitude)
应用于赤道每度米就足够了。
但这取决于您要计算什么,为什么需要每度的米数? (我需要将纬度/经度转换为笛卡尔变换) 两种方法在 75° 处的差异是 28km 和 90m,因此对于角度计算或到笛卡尔空间的转换,这几乎没有影响。 如果不超过纬度 80°,这一切都是有效的。在极地地区 >80° 纬度,您必须将所有计算更改为极坐标变换。 (例如 UPS)
【讨论】:
我正在使用它来将纬度/经度坐标转换为本地笛卡尔坐标系。我认为你是对的,在极端纬度,笛卡尔空间将不足,但我仍然不明白为什么我不能将这些更准确的方程用于地球上的其他普通点。就像您说的那样,28km 中的 90m 差异大约与球体近似值的差异成正比(赤道和极地半径相差 1/300 的相似比率)。我想我不妨把 1/300 的错误去掉,因为我可以。 这背后的想法是,通常坐标是由 GPS 接收的,如果在极端纬度不使用它,它会有大约 3-6m 的误差。对于任何区域设置转换,两种方法之间的差异都没有影响,因为角度通过 GPS(移动方向)计算,精度不超过 0.1 度。最好写两个这样的转换方法,然后比较结果,结果会是 1/1000 毫米。【参考方案2】:好吧,仅仅检查球面近似与相关方程的相似程度并不完全是火箭科学(考虑到我一直在玩的 KSP 数量,这甚至也不像是一个合适的习语):
More WolframAlpha shenanigans
这足以说服我,真的……
【讨论】:
这是一个糟糕的答案,您应该发布在该方法之间以米为单位测量的误差(对于某些或一个相关纬度)。 嗯,好点。线条非常接近的事实仅表明不存在巨大的错误以上是关于WGS84 米一经度函数的主要内容,如果未能解决你的问题,请参考以下文章
【求助!!!】WGS84坐标系向经纬度转换的matlab代码