`
zscomehuyue
  • 浏览: 414703 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大地坐标和高斯平面坐标转换

阅读更多
图幅理论面积与图斑椭球面积计算公式及要求

一、 图幅理论面积计算公式
                        (1)
式中:
a—椭球长半轴(单位:米),α—椭球扁率,b—椭球短半轴(单位:米)。
е²﹦(a²﹣b²)/a²。
A﹦1﹢(3/6)е²﹢(30/80)е4﹢(35/112)е6﹢(630/2304)е8。
B﹦   (1/6)е²﹢(15/80)е4﹢(21/112)е6﹢(420/2304)е8。
C﹦                (3/80)е4﹢ (7/112)е6﹢(180/2304)е8。
D﹦                              (1/112)е6﹢ (45/2304)е8。
E﹦                                             (5/2304)е8。
ΔL—图幅东西图廓的经差(单位:弧度)。
(B2﹣B1)—图幅南北图廓的纬差(单位:弧度),Bm﹦(B1﹢B2)/2。

二、椭球面上任意梯形面积计算公式
                      (2)
其中:A,B,C,D,E 为常数,按下式计算:
е²﹦(a²﹣b²)/a²
A﹦1﹢(3/6)е²﹢(30/80)е4﹢(35/112)е6﹢(630/2304)е8
B﹦   (1/6)е²﹢(15/80)е4﹢(21/112)е6﹢(420/2304)е8
C﹦                (3/80)е4﹢ (7/112)е6﹢(180/2304)е8
D﹦                              (1/112)е6﹢(45/2304)е8
E﹦                                            (5/2304)е8
式中:a—椭球长半轴(单位:米),b—椭球短半轴(单位:米);
ΔL—图块经差(单位:弧度); (B2﹣B1)—图块纬差(单位:弧度)
      Bm﹦(B1﹢B2)/2。

三、高斯投影反解变换()模型
(若坐标不带带号,则不需减去带号×1000000;)



   +中央子午线经度值(孤度)                                       (3)
式中:               

公式说明:若坐标为没有带号前缀格式,则不需减去带号×1000000;若坐标为有带号前缀格式,则需减去带号×1000000。

四、计算用到的常数、椭球参数
在计算图幅理论面积与任意图斑椭球面积时,有关常数及保留的位数按给定数值计算。
常数:
π﹦3.14159265358979
206264.8062471
80椭球常数:
    = 6378140          = 1/ 298.257
    = 6356755.29
    = 6.69438499958795E-03
    = 6.73950181947292E-03
     = 6399596.65198801
相关常数:
k0  = 1.57048687472752E-07
k1  = 5.05250559291393E-03
k2  = 2.98473350966158E-05
k3  = 2.41627215981336E-07
k4  = 2.22241909461273E-09

五、计算中的取位及要求
① 高斯投影反解变换后的B,L以秒为单位,保留到小数点后6位,四舍五入。
② 采用计算机计算时,所有变量数据类型均要定义为双精度。
③ 面积计算结果以平方米为单位,保留一位小数,四舍五入。
④ 各种比例尺标准分幅图经差、纬差见表1。
⑤ 在用大地坐标生成标准分幅图框时,要求在每条边框线的整秒处插入加密点。
表1 各种比例尺标准分幅图经差、纬差表
比例尺 1:100万 1:50万 1:25万 1:10万 1:5万 1:2.5万 1:1万 1:5千
经差 6º 3º 1º30′ 30′ 15′ 7′30″ 3′45″ 1′52.5″
纬差 4º 2º 1º 20′ 10′ 5′ 2′30″ 1′15″


六、任意图斑椭球面积计算方法
任意封闭图斑椭球面积计算的原理:将任意封闭图斑高斯平面坐标利用高斯投影反解变换模型,将高斯平面坐标换算为相应椭球的大地坐标,再利用椭球面上任意梯形图块面积计算模型计算其椭球面积,从而得到任意封闭图斑的椭球面积。
1、计算方法:
任意封闭区域总是可以分割成有限个任意小的梯形图块,因此,任意封闭区域的面积,式中Si为分割的任意小的梯形图块面积(i=1,2,…n)用公式(2)计算。
求封闭区域(多边形如图1)ABCD的面积 ,其具体方法为:
(1)对封闭区域(多边形)的界址点连续编号(顺时针或逆时针)ABCD,提取各界址点的高斯平面坐标A(X1,Y1),B(X2,Y2),C(X3,Y3),D(X4,Y4);
(2)利用高斯投影反解变换模型公式(3),将高斯平面坐标换算为相应椭球的大地坐标A(B1,L1),B(B2,L2),C(B3,L3),D(B4,L4);
(3)任意给定一经线L0(如L0=60°),这样多边形ABCD的各边AB、BC、CD、DA与L0就围成了4个梯形图块(ABB1A1、BCC1B1、CDD1C1、DAA1D1);
(4)由于在椭球面上同一经差随着纬度升高,梯形图块的面积逐渐减小,而同一纬差上经差梯形图块的面积相等,所以,将梯形图块ABB1A1按纬差分割成许多个小梯形图块AEiFiA1,用公式(2)计算出各小梯形图块AEiFiA1的面积Si,然后累加Si就得到梯形图块ABB1A1的面积,同理,依次计算出梯形图块BCC1B1、CDD1C1、DAA1D1的面积(注:用公式(2)计算面积时,B1、B2分别取沿界址点编号方向的前一个、后一个界址点的大地纬度,ΔL为沿界址点编号方向的前一个、后一个界址点的大地经度的平均值与L0的差);
(5)多边形ABCD的面积就等于4个梯形图块(ABB1A1、BCC1B1、CDD1C1、DAA1D1)面积的代数和。

图1 椭球面上任意多边形计算面积
则任意多边形ABCD的面积P为:
P=ABCD= BCC1B1+ CDD1C1+ DAA1D1- ABB1A1
2、计算要求
① 利用图形坐标点将高斯坐标系下的几何图形反算投影到大地坐标系,进行投影变换。
② 任意指定一条经线L0,从选定多边形几何形状的起始点开始,沿顺时针方向依次计算相邻两点构成的线段,以及两点到指定经线的平行线构成的梯形面积。将该梯形沿纬度变化方向(Y轴)进行切割,至少需切割为2个部分。
③ 计算过程中应顺同一方向依坐标点逐个计算相邻两点连线与任意经线构成的梯形面积,坐标点不得有遗漏。若多边形包含内多边形(洞),则该多边形面积为外多边形面积减去所有内多边形面积之和。
④ 计算所有梯形面积的代数和即为该多边形的面积。
七、算法伪代码描述
为了确保编程使用的参数、算法一致,保证不同软件计算的椭球面积一致,我们用算法伪代码描述的方法对编程进行统一,在利用计算机编制椭球面积计算软件时,计算参数与计算顺序应严格按照以下代码执行。
1、参数说明
双精度类型:
圆周率值:PI = 3.14159265358979
中央经线:CenterL
RHO = 206264.8062471

A:ParamA
B:ParamB
C:ParamC
D:ParamD
E:ParamE

Const ZERO As Double = 0.000000000001

80椭球常数

椭球长半轴:aRadius     = 6378140     
椭球短半轴:bRadius     = 6356755.29
椭球扁率:ParaAF   = 1/ 298.257
椭球第一偏心率:ParaE1  = 6.69438499958795E-03
椭球第二偏心率:ParaE2 = 6.73950181947292E-03
极点子午圈曲率半径:ParaC  = 6399596.65198801
     
k0:Parak0  = 1.57048687472752E-07
k1:Parak1  = 5.05250559291393E-03
k2:Parak2  = 2.98473350966158E-05
k3:Parak3  = 2.41627215981336E-07
k4:Parak4  = 2.22241909461273E-09
   
2、算法描述

初始化参数

        Double e;
        Double a;

e = ParaE2;
        ParaC = aRadius / (1 - ParaAF);

ParamA = 1 + (3 / 6) * e + (30 / 80) * Power(e, 2) + (35 / 112) * Power(e, 3) + (630 / 2304) * Power(e, 4);
       
ParamB = (1 / 6) * e + (15 / 80) * Power(e, 2) + (21 / 112) * Power(e, 3) + (420 / 2304) * Power(e, 4);

ParamC = (3 / 80) * Power(e, 2) + (7 / 112) * Power(e, 3) + (180 / 2304) * Power(e, 4);
        ParamD = (1 / 112) * Power(e, 3) + (45 / 2304) * Power(e, 4);
       
ParamE = (5 / 2304) * Power(e, 4);
       
参数初始化结束

中央经线转换为弧度
        CenterL = TransDegreeToArc(CenterL)

选定本初子午线为参考经线
        StandardLat = 0
       
        For 起始点 To 倒数第二点
           
          由高斯坐标反解计算经纬度值
                ComputeXYGeo (PntColl.Point(i).y, PntColl.Point(i).x, B, L, CenterL)
                ComputeXYGeo (PntColl.Point(i + 1).y, PntColl.Point(i + 1).x, B1, L1, CenterL)
          将经纬度转换为弧度值
                B = B / RHO
                L = L / RHO
                B1 = B1 / RHO
                L1 = L1 / RHO
               
          计算梯形面积          
            Double AreaVal;//梯形面积值
Double lDiference ;//经差
        Double bDiference; //纬差
        Double bSum;//纬度和
        Double ItemValue(5);//计算变量

        bDiference = (B1 - B0);
       
        bSum = (B1 + B0) / 2;
       
        lDiference = (L1  + L) / 2;
 
        ItemValue(0) = ParamA * Sin(bDiference / 2) * Cos(bSum);
        ItemValue(1) = ParamB * Sin(3 * bDiference / 2) * Cos(3 * bSum);
        ItemValue(2) = ParamC * Sin(5 * bDiference / 2) * Cos(5 * bSum);
        ItemValue(3) = ParamD * Sin(7 * bDiference / 2) * Cos(7 * bSum);
        ItemValue(4) = ParamE * Sin(9 * bDiference / 2) * Cos(9 * bSum);
        AreaVal = 2 * bRadius * lDiference * bRadius * (ItemValue(0) - ItemValue(1) + ItemValue(2) - ItemValue(3) + ItemValue(4));

            areaSum = areaSum + AreaVal;
        Next

    End Sub
   
3、高斯坐标反解算法

Public Sub ComputeXYGeo(x As Double, y As Double, B As Double, L As Double, center As Double)

    Dim y1 As Double
    Dim bf As Double
   
    y1 = y - 500000
   
    Dim e As Double
   
    e = Parak0 * x
   
    Dim se As Double
   
    se = Sin(e)
bf = e + Cos(e) * (Parak1 * se - Parak2 * Power(se, 3) + Parak3 * Power(se, 5) - Parak4 * Power(se, 7))
   
    Dim v As Double
    Dim t As Double
    Dim N As Double
    Dim nl As Double
    Dim vt As Double
    Dim yn As Double
    Dim t2 As Double
    Dim g As Double
   
    g = 1
   
    t = Tan(bf)
    nl = ParaE1 * Power(Cos(bf), 2)
    v = Sqr(1 + nl)
    N = ParaC / v
    yn = y1 / N
    vt = Power(v, 2) * t
    t2 = Power(t, 2)
    B = bf - vt * Power(yn, 2) / 2 + (5 + 3 * t2 + nl - 9 * nl * t2) * vt * Power(yn, 4) / 24 - (61 + 90 * t2 + 45 * Power(t2, 2)) * vt * Power(yn, 6) / 720
   
    B = TransArcToDegree(B)

    Dim cbf As Double
          
    cbf = 1 / Cos(bf)
    L = cbf * yn - (1 + 2 * t2 + nl) * cbf * Power(yn, 3) / 6 + (5 + 28 * t2 + 24 * Power(t2, 2) + 6 * nl + 8 * nl * t2) * cbf * Power(yn, 5) / 120 + center
    L = TransArcToDegree(L)
End Sub 

弧度转换为度
Public Function TransArcToDegree(arc As Double) As Double
    Dim degree As Double
    Dim min As Double
    Dim sec As Double
    Dim ret As Double
    Dim tmp As Double
    ret = arc * 180 / PI
    degree = FormatValue(ret, 100, 100)
    tmp = (ret - degree) * 60
    min = FormatValue(tmp, 100, 100)
    sec = (tmp - min) * 60
    //秒保留到小数点后6位,四舍五入
    sec = Format(sec, "####.000000") 'FormatValue(sec, 10000000, 100)
    TransArcToDegree = degree * 3600 + min * 60 + sec
End Function

Private Function FormatValue(inputVal As Double, precsion As Long, scaleNum As Long) As Double
    FormatValue = (Int(inputVal * precsion) - Int(inputVal * precsion) Mod scaleNum) / precsion
End Function
分享到:
评论

相关推荐

    高斯平面坐标换算为大地坐标公式.doc

    在地理信息系统(GIS)、遥感和测绘领域中,将高斯平面坐标转换为大地坐标是一个基础且重要的任务。这涉及到坐标系统之间的变换,即从一个投影平面坐标系统转换到一个基于地球椭球面的坐标系统。这种转换对于精确...

    大地坐标与高斯坐标转换工具

    高斯平面坐标系统,则是基于局部投影的一种二维平面坐标系统,主要用于地面测量和工程计算。在中国,通常采用3度带或6度带的高斯-克吕格投影,将大地坐标中的经纬度转换为水平距离和垂直距离,这样可以避免在小范围...

    坐标转换,高斯坐标和大地坐标互转,度。度格式转换为度分秒格式等等 (修正版)

    1. **高斯坐标系统**:高斯平面坐标系统是一种在平面内表示地球表面地理位置的方法,由德国数学家卡尔·弗里德里希·高斯提出。它将地球表面投影到一个平面上,通常用于地形图的绘制。高斯坐标由6°或3°带划分,每...

    大地坐标转换高斯平面坐标系matlab代码

    该matlab代码基于武汉大学出版社出版的《大地测量学基础》,为高斯正算程序,代码中详细标注了公式在课本中的位置,以及计算注意事项,可用于多种椭球的大地坐标转换成高斯平面坐标。

    大地坐标与高斯坐标计算程序

    总的来说,这个“大地坐标与高斯坐标计算程序”是GIS和测绘工作中的利器,它通过简洁的界面和高效的算法,简化了坐标转换的过程,对于理解和应用不同坐标系统之间的关系提供了极大的便利。无论是进行工程设计、地图...

    高斯投影正反算 高斯大地坐标转换

    而高斯平面坐标系统则是将大地坐标经过高斯投影转换成的二维平面坐标,通常表示为X和Y。X轴与中央子午线重合,Y轴与赤道平行。 **正算过程** 大地坐标到高斯坐标的转换,也称为正算,包括以下几个步骤: 1. **选择...

    基于C++的高斯坐标系下经纬度与大地坐标转换程序

    它包括经度、纬度和海拔高度三个参数,但在这里我们关注的是前两个平面坐标——X轴和Y轴,它们通常平行于地球的赤道面和中央子午线。 这个C++程序实现了从经纬度到高斯坐标的转换,这涉及到地球椭球体的几何特性...

    大地坐标和高斯平面坐标或空间直角坐标的相互转换工具(含DLL)

    一个经纬度&高程和高斯平面坐标或空间直角坐标的相互转换工具,含DLL,支持北京54、西安80、CGCS2000、WGS84 的3度带/6度带转换,精度达到毫秒级,简单易用。 使用说明:在左侧经纬度栏输入经纬度坐标,格式为 度:...

    坐标转换源代码(空间直角坐标系与大地坐标系与平面直角坐标系互转 7参数与高斯投影)

    坐标转换源代码,包含空间直角坐标系互转、大地坐标系与空间直角坐标系互转、平面直角坐标系与大地坐标系互转的源程序;部分源代码来源于网络,涉及了C++、C#两种语言;本人亲测可用并全部通过C#实现出来,精度可...

    经纬坐标转高斯平面坐标C#源码

    本话题主要涉及的是将经纬度坐标转换为高斯平面坐标的过程,这个过程在C#编程语言中实现,并且与WPF(Windows Presentation Foundation)相关。下面我们将深入探讨这些知识点。 首先,我们来理解WGS84坐标系。WGS84...

    坐标转换软件(完成大地坐标,平面坐标,空间直角坐标之间的转换)

    2. 平面坐标系:平面坐标系通常基于国家或地区的特定投影,如UTM(Universal Transverse Mercator)和高斯-克吕格投影。这些投影将地球曲面转化为平面,以便于地图制作和测量。不同的投影方式会根据地理位置和用途...

    gaosi.rar_平面坐标_高斯 大地_高斯坐标_高斯投影

    首先,让我们了解大地坐标系统和高斯平面坐标系统的概念。大地坐标系统基于地球椭球体,使用经度(λ)和纬度(φ)来定位地面上的任何点。而高斯平面坐标系统是将大地坐标转换到二维平面上的系统,通常用于较小的...

    大地坐标与平面坐标转换DLL及代码

    完成从大地直角坐标到高斯平面坐标的相互转换。参考椭球参数为,a=6378137,f=alpha=298.2572235635,条带数beltWidth =6, assumedCoord=true。大地直角坐标,是符合WGS84标准的BL坐标,GPS坐标就是BL坐标的一种,以...

    高斯坐标正反算.rar_大地坐标_平面坐标_经纬度_高斯 大地

    - 将高斯平面坐标(X, Y)转换为带号和带内坐标(X', Y')。 - 应用高斯投影的反解公式,计算出该点的大地经度λ和大地纬度φ。 - 考虑中央经线的投影性质,修正经度值以获得精确的大地坐标。 2. 大地经纬度到高斯...

    大地坐标与经纬度坐标转换

    - **高斯-克吕格投影**:在某些国家和地区,如中国,采用的是高斯-克吕格投影,将大地坐标转换为平面坐标。 4. **转换过程**:从经纬度到大地坐标的转换通常涉及椭球参数、子午线收敛角、地理坐标到大地坐标投影...

    C#坐标转换(大地坐标与空间坐标互换、高斯正反算).zip

    4. **高斯反算**:如果需要,再将直角坐标转换回大地坐标。 5. **写入结果**:将转换后的坐标保存到新的txt文件或其他格式,便于后续分析和应用。 博客链接...

    大地坐标系高斯投影转换成平面直角坐标系MATLAB程序.rar

    程序包含两个函数,其中[Gaussian_X,Gaussian_Y]=convert84BLToGauss(longitude,latitude) 函数将经纬度转为o-xy坐标;[longitude,latitude]=convert84GaussToBL(X,Y) 函数将o-xy坐标转为经纬度;选用的6度带宽。

    高斯坐标转换小工具-大地坐标、54坐标

    总的来说,这款“高斯坐标转换小工具”提供了一个便捷的解决方案,使得用户无需深入理解复杂的数学计算,也能完成大地坐标与54坐标的互转,提高了工作效率,尤其对于GIS专业人员和测绘工作者来说,是一个非常实用的...

    高斯坐标转换_高斯正反算_高斯_高斯坐标转换VB_坐标转换VB_坐标转换

    正算通常是指从地理坐标(经纬度)转换到高斯平面直角坐标,反算则是相反的过程,即从高斯平面坐标转换回经纬度。这两个过程在GIS软件开发中是非常关键的步骤,用于处理地图投影和定位问题。 高斯正算涉及到的主要...

    坐标转换程序代码

    本代码实现了将大地坐标转换为高斯平面坐标的过程,涉及到坐标系转换、投影变换等概念,对于GIS和计算机图形学领域具有重要的意义。 知识点: * 坐标系转换 * 高斯正算 * 六度带投影 * 椭球面上的点投影 * 平面...

Global site tag (gtag.js) - Google Analytics