我得到了具有以下参数的站点坐标系:
- 投影类型(通常是横轴墨卡托)
- 椭球体/基准面(通常为 GRS80/GDA94)
- 中央子午线
- 中心比例因子
- 假东
- 假北宁
然后需要以编程方式将大量点从 ECEF 转换为站点坐标系统,因此理想情况下我想使用转换矩阵。
维基百科给出了这个转换矩阵的公式为:
http://upload.wikimedia.org/math/6/c/5/6c5e10c1708acc1663d618c2f3fecc98.png
但是,如何根据提供给我的站点映射参数计算此公式所需的参数?
进行此转换的常用方法是首先从 ECEF 转换为大地坐标(纬度、经度、高度),然后将其转换为地图坐标(北向、东向、高度)。这些变换中的每一个都是非线性的。但是,如果站点不是太大并且精度要求不太严格,则可以对站点周边的几十个(例如)点执行上述变换,然后使用这些点和原始点查找最接近 ECEF 坐标的地图坐标的仿射变换。
我已经玩了一下,似乎虽然有可能以相当的精度获得东向和北点(例如,半径 10 公里半径内的场地上几厘米,场地上空的高度变化为 20 米;但如果高度变化为 200 米,精度下降到 2 分米), 甚至不可能获得高度的公平精度 - 在示例中,高度可能是~8m。这是不可避免的,因为场地坐标中恒定高度的线将接近圆弧,并且如果您计算长度为20km的弧和半径为地球半径的圆的弦与弧的最大距离,则得到~16m。