免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2656|回复: 1
收起左侧

[资料] WGS84转北京54的程序

[复制链接]

1万

主题

1024

铜板

1098

好友

技术员

积分
81946
QQ
发表于 2011-4-14 15:39 | 显示全部楼层 |阅读模式
VB的代码,可以参考一下: '经纬度BL换算到高斯平面直角坐标XY(高斯投影正算)
Private Function Deg2XY(ByRef F2 As Double, ByRef E2 As Double, _
                ByRef s2 As Double, ByRef t2 As Double) As Boolean
                'A2 输入中央子午线,以度.分秒形式输入,如115度30分则输入115.30; 起算数据L0
                'F2 以度小数形式输入经度值, L
                'E2 以度小数形式输入纬度值,B
                'S2 计算结果,横坐标Y,,请特别注意,这里生成的是高斯坐标
                'T2 计算结果,纵坐标X
                '投影带号计算 n=[L/6]+1   如:兰州测得经度103.XXXX,故n=[103.X/6]+1=17+1=18
                '中央经线经度 L0 = n*6-3 = [L/6]*6+3
               
    'ByRef A2 As Double,
    Dim A2 As Double
    Dim B2 As Double
    'Dim G2 As Double
    Dim H2 As Double
    Dim i2 As Double
    Dim J2 As Double
    Dim K2 As Double
    Dim l2 As Double
    Dim M2 As Double
    Dim n2 As Double
    Dim O2 As Double
    Dim P2 As Double
    Dim Q2 As Double
    Dim R2 As Double
    Dim NN As Integer '投影代号
'    A2 = CInt(F2 / 6) * 6 - 3
   
'    B2 = Int(A2) + (Int(A2 * 100) - Int(A2) * 100) / 60 + (A2 * 10000 - Int(A2 * 100) * 100) / 3600
    '把L0化成度(A2)
    NN = CInt(F2 / 6) + 1 '投影代号n=[L/6]+1 '
    B2 = NN * 6 - 3 '中央经线
    'G2 = F2 - B2 ' L -L0
    'H2 = G2 / 57.2957795130823 '化作弧度
    H2 = (F2 - B2) / 57.2957795130823 '将经差的单位化为弧度
    i2 = Tan(E2 / 57.2957795130823) 'Tan (B)
    J2 = Cos(E2 / 57.2957795130823) ' Cos (B)
    K2 = 0.006738525415 * J2 * J2
    l2 = i2 * i2
    M2 = 1 + K2
    n2 = 6399698.9018 / Sqr(M2)
    O2 = H2 * H2 * J2 * J2
    P2 = i2 * J2
    Q2 = P2 * P2
    R2 = (32005.78006 + Q2 * (133.92133 + Q2 * 0.7031))
    s2 = ((((l2 - 18) * l2 - (58 * l2 - 14) * K2 + 5) * O2 / 20 + M2 - l2) * O2 / 6 + 1) * n2 * (H2 * J2)
   
    '计算结果,横坐标Y,这里生成的是高斯坐标
    s2 = s2 + NN * 1000000 + 500000 '18500000 '在计算的基础上加上了“带号”(18)和“东移”(500KM)
    '计算结果,纵坐标X
    t2 = 6367558.49686 * E2 / 57.29577951308 - P2 * J2 * R2 + ((((l2 - 58) * l2 + 61) * _
        O2 / 30 + (4 * K2 + 5) * M2 - l2) * O2 / 12 + 1) * n2 * i2 * O2 / 2
   
    Deg2XY = True
End Function

2

主题

817

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
119
发表于 2011-8-15 20:37 | 显示全部楼层
谢谢分享 好东西
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表