高斯投影正反算公式

高斯投影正算公式,就是由大地坐标(L , B),即(l , q),计算高斯平面直角坐标(x , y)的公式如图所示。

java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_java高斯投影坐标反算成经纬度


高斯投影反算公式,是已知P点的高斯平面坐标(x , y)求该点的大地坐标(L , B)或对应(l , q)的公式。

java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_算法_02


正反算公式推导略微复杂,与本篇无关这里不具体展示,可自行百度。

实用公式

适合于用计算机程序计算的高斯投影正算的实用公式,并按根据椭球体的参数分别计算。

1. 高斯投影正算公式(精度为0.001m)

java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_python_03


其中:

  • 根据经纬度计算中央子午经度和带号及经度差(点到中央子午线的距离)

    *注:计算出的 l为角度制单位,在计算m前需要转为弧度制。
  • 根据椭球参数计算出子午弧长
  • 子午线弧长公式
    如图5-14所示,设子午圈上两点P1 、P2,相应的纬度为B1、B2,求P1、P2间的子午线弧长X。
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_java高斯投影坐标反算成经纬度_04

  • 设点P的子午圈曲率半径为M,则弧素dX可看成是以M为半径的圆弧,于是有
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_迭代_05

  • 要求P1、P2间的弧长X,就是求dX有B1到B2的积分即
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_迭代_06

  • 其中:M 为子午圈上一点的曲率半径
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_python_07

  • 将M按照牛顿二项式定理展开级数,取至8次项
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_java高斯投影坐标反算成经纬度_08

  • 将幂函数sin展开为cos
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_算法_09

  • 对一式 M 进行积分求得 X
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_算法_10

  • *注:输入的 B 为角度值单位,在计算 X 前需要转为弧度制。
  • 其中 e 为椭球体的第一偏心率
  • java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_迭代法_11

  • 卯酉圈曲率半径
  • 计算正算公式中的剩余符号值
  • Y 的值进行加工
    将正算公式计算出的自然值 +500公里(在前两位添加带号)
2. 高斯投影反算公式(精度为0.01")

java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_迭代_12


java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_算法_13


java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_python_14


*注:计算得出的 LB 为角度制

  • 迭代法求取大地纬度 Bf
    Bf 为垂足纬度,令 x 坐标 = X 所对应的大地纬度。垂足纬度 Bf 可用迭代法求得。
  • X 反求 Bf 迭代程序开始时初始值设

    *注:其中 a0 与上式正算公式一致。
  • 以后各次迭代计算程序是

*注:a2a4a6a8与上式正算公式一致。

反复迭代直至下图为止,以保证 Bf 精确至0.001"。一般情况下,迭代5次即可达到要求精度。

java高斯投影坐标反算成经纬度 高斯投影坐标反算公式_python_15


*注:由迭代公式得到的 Bf 是以(弧度)为单位。

  • 计算正算公式中的剩余符号值

    *注:其中 e’ 为第二偏心率
3. 常用的地球椭球参数

大地测量中常用的 af 表示地球椭球的几何形状

坐标系(椭球名称)

a

b

f

中国1954北京坐标系(克拉索夫斯基椭球)

6378245m

6356863.0188m

0.00335232986926

中国1980西安坐标系(GRS75椭球)

6378140m

6356755.2882m

0.00335281317790

中国2000国家大地坐标系(GRS80椭球)

6378137m

6356752.31414m

1/298.257222101

总结

编译过程中需要注意各公式返回值的单位,需要适时进行换算。在网络上查询相关资料时,遇到大量错误公式,且在程序编写中应所使用公式返回单位的差异始终无法得出正结果。期间遇到的“坑”均已注释的形式写明。按本公式直接编译即可计算正确。