文档介绍:高斯投影坐标正反算
- 1 -
高斯投影坐标正反算
学 院:
班 级:
学 号: e * e * Sin(b_) * Sin(b_))
N = a / W
x = x_ + N * Sin(b_) * Cos(b_) * l * l / 2 + N * Sin(b_) * Cos(b_) ^ 3 * (5 - t * t + 9 * eta * eta + 4 * eta ^ 4) * l ^ 4 / 24 + N * Sin(b_) * Cos(b_) ^ 5 * (61 - 58 * t * t + t ^ 4) * l ^ 6 / 720
y = N * Cos(b_) * l + N * Cos(b_) ^ 3 * (1 - t * t + eta * eta) * l * l * l / 6 + N * Cos(b_) ^ 5 * (5 - 18 * t * t + t ^ 4 + 14 * eta * eta - 58 * eta * eta * t * t) * l ^ 5 / 120
Text7 = x
If dh = 6 Then
y_ = y + 500000 + 1000000 * ik1
Else
If dh = 3 Then
y_ = y + 500000 + 1000000 * ik2
Else
MsgBox "error", 48, "error": Exit Sub
End If
End If
Text8 = y_
End Sub
Private Sub Command2_Click()
高斯投影坐标正反算
- 6 -
Dim bf#, j%, Wf#, Vf#, Nf#, Mf#, c#, tf#, etaf#, dh%, ik%
x = Val()
y_ = Val()
e = Sqr((a * a - b * b) / (a * a))
m0 = a * (1 - e * e)
m2 = e * e * m0 * 3 / 2
m4 = e * e * m2 * 5 / 4
m6 = m4 * e * e * 7 / 6
m8 = e * e * m6 * 9 / 8
a0 = m0 + m2 / 2 + m4 * 3 / 8 + m6 * 5 / 16 + m8 * 35 / 128
a2 = m2 / 2 + m4 / 2 + m6 * 15 / 32 + m8 * 7 / 16
a4 = m4 / 8 + m6 * 3 / 16 + m8 * 7 / 32
a6 = m6 / 32 + m8 / 16
a8 = m8 / 128
bf = x / a0
For j = 1 To 10
bf = (x + a2 / 2 * Sin(2 * bf) - a4 * Sin(4 * bf) / 4 + a6 * Sin(6 * bf) / 6 - a8 * Sin(8 * bf) / 8) / a0
Next j
e1 = Sqr(a * a - b * b) / b
Vf = Sqr(1 + e1 * e1 * Cos(bf) * Cos(bf))
Wf = Sqr(1 - e * e * Sin(bf) * Sin(bf))
高斯投影坐标正反算
- 7 -
Nf = a / Wf
c = a * a / b
Mf = c / Vf ^ 3
tf = Tan(bf)
e1 = Sqr((a * a - b * b) / (b * b))
etaf = Sqr(e1 * e1 * Cos(bf) * Cos(bf))
ik = Int(y_ / 1000000)
y = y_ - ik * 1000000 - 500000
b_ = bf - tf * y * y / (2 * Mf * Nf) + tf * (5 + 3 * tf * tf + etaf * etaf - 9 * etaf * etaf * tf * tf) * y * y * y * y / (24 * Mf * Nf * Nf * Nf) + tf * (61 + 90 * tf * tf + 45