高斯投影反算

  • 格式:doc
  • 大小:38.50 KB
  • 文档页数:3

Option Explicit '指明所有的变量、常数在使用前都需声明其类型
Private Sub Form_Paint()'Private ,汉译为私有的,指明本过程只在当前模块下有效Cls '清除显示屏
CurrentX=0 '设置开始的X坐标为零
CurrentY=0 '设置开始的Y坐标为零
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 s2 As Double
Dim t2 As Double
Dim f2 As Double
Dim e2 As Double
a2=113.30
f2=115.50
e2=27.0
b2=Int(a2)+(Int(a2*100)-Int(a2)*100)/60+(a2*10000-Int(a2*100)*100)/3600 '把l0化成度(a2)
'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.006735825415*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)
s2=s2+(((Int(a2))/6)+1)*1000000+500000'在计算的基础上加上了"带号"(18)和"东移"(500km) '计算结果,纵坐标y
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
'计算结果,纵坐标x
Print"pts2=" & s2 & "pt t2="& t2
End Sub
大地坐标反算经纬度
Private Sub Form_Paint()'Private ,汉译为私有的,指明本过程只在当前模块下有效Cls '清除显示屏
CurrentX=0 '设置开始的X坐标为零
CurrentY=0 '设置开始的Y坐标为零
Dim P,x,y,Pl ,z,a,b,bf,l1,l2,l,l0,b2,b3,b4,b5,N,i,j,l3,bg,bh,b7,b8,b9,k As Double
Pl=3.1415926535
P=(180.0/Pl)*3600
Print("please enter x,y:\n")
l0=117
x=2994058
y=357237
y=y-500000
a=x*P/6367558.4969
b=(a*Pl/180.0)/3600.0
i=Cos(b)*Cos(b)
bf=a+(50221746+(293622+(2350+22*i)*i)*i)*Sin(b)*Cos(b)*P*(1E-10)
bg=(bf*Pl/180.0)/3600.0
j=Cos(bg)*Cos(bf)
N=6399698.902-(21562.267-(108.973-0.612*j)*j)*j
b2=(0.5+0.003369*j)*Sin(bg)*Cos(bg)
b3=0.333333-(0.166667-0.001123*j)*j b4=0.25+(0.16161+0.00562*j)*j
b5=0.2-(0.1667-0.0088*j)*j
z=(y/N)/Cos(bg)
k=z*z
bh=bf-(1-(b4-0.12*k)*k)*k*b2*P
bh=bh/3600.0
l1=(1-(b3-b5*k)*k)*z*P
l=(l1/3600)+l0
Print "B="& bh
Print "L="& l
End Sub。