您现在的位置是:首页软件开发论文

利用VB编写1:1万地形图新旧图幅号转换

发布时间:2011-08-27 10:01:02更新时间:2023-07-11 15:28:52 1

利用VB编写1:1万地形图新旧图幅号转换
马云飞 刘振东
摘 要: 利用Visual Basic语言编写新旧图幅号转换,方便作业员查找地形图数据资料,省去了新旧图号对应时产生的不便。
关键词: 对应 转换 查询
0、前言
辽宁省摄影测量与遥感院具有近30多年的发展史,全院各种纸质地形图数万幅,由于实行新的一万地形图编码,当查寻资料时就需要新、老图号的地形图资料,由于相互图号不对应,这就为查找带来不便,编写此程序只要输入新或者旧的1:1万图幅号就能生成对应的图幅号,提高了工作效率。
1、转换原理
1.1 旧图幅号编码规则

 

旧图幅号编码规则
 

1.2 图(3)是新图幅号编码规则是在1:100万图幅上按照坐标方法直接分成1:1万图幅。

 

图(3)是新图幅号编码规则是在1:100万图幅上按照坐标方法直接分成1:1万图幅
 

1.3、转换实例
见图(1)和图(2)中圆圈所在1:1万图幅号为K51-133-49(均以辽宁地区为例)
所对应的新图幅号横坐标为:11*8+7=95
所对应的新图幅号纵坐标为:1
所以新图幅号为K51G095001
通过1:1万新图幅号反过来一样可以推出1:1万旧图幅号。
2、通过程序实现转换(部分代码)

Dim x, y, z, h, w As String
Dim a, b, c, d, e, f, m, n As Integer
On Error GoTo delerr
x = Text1.Text '''''''''''取出需要转换的旧图幅号
y = Mid(x, 5, 3) z = Mid(x, 10, 3)
a = CInt(y) '''''''''''转换成整型
b = CInt(z)
h = Mid(x, 1, 3)
n = Len(x)
If a > 144 Then '''''''''''''5万图幅号不能大于144
GoTo delerr1
End If
If b > 64 Then ''''''''''''''''1万图幅号不能大于64
GoTo delerr2
End If
If n = 0 Or n > 13 Then
GoTo delerr3
End If
'''''''''''''''''''''''''''''''''计算横坐标
c = a
c = c 12
d = a Mod 12
If c = 0 Then
f = 0
Else
If d = 0 Then
f = (c - 1) * 8
Else
f = c * 8 (选择界面)
End If
End If
c = b
c = c 8
d = b Mod 8
If d = 0 Then
f = f + c
Else
f = f + c + 1
End If
''''''''''''''''''''计算纵坐标
a = CInt(y)
b = CInt(z)
c = a
c = c 12
d = a Mod 12 (1:1万旧图幅号转换新图幅号界面)
If d = 0 Then
m = 88
Else
m = (d - 1) * 8
End If
c = b
c = c 8
d = b Mod 8
If d = 0 Then
m = m + 8
Else
m = m + d
End If
x = CStr(f)
y = CStr(m)
w = h & "G" & x & y (1:1万新图幅号转换旧图幅号界面)
Text2.Text = w '''写出转换后图号

 

选择界面
 
新旧转换界面
 

5、结束语
该程序简单、易掌握,当新旧地形图需要转换时,不必人为手工计算或者查询转换表,提高了工作效率,减少了计算或查找工作量,便于查询。由于篇幅有限,这里只列出了程序的部分代码。
参考文献
1、 孙越,Visual Basic数据库开发教程(M),北京:人民邮电出版社,2002,131-143。


 


转载请注明来自:http://www.yueqikan.com/ruanjiankaifalw/14631.html