📄 daima.txt
字号:
'经纬度bl换算到高斯平面直角坐标xy(高斯投影正算)
private function bl2xy(byref a2 as double, 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
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
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.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)
s2 = s2 + 18500000 '在计算的基础上加上了“带号”(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
'msgbox "pts2=" & s2 & " pt t2=" & t2
bl2xy = true
end function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -