VB环境下经纬度与地图图幅号的相互转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB环境下经纬度与地图图幅号的相互转换
摘要
无论在地图学领域还是测绘学领域,会经常遇到区域经纬度与该区域地形图图幅号之间相互转换的问题,而频繁的人工计算过程会使相关工作繁琐,效率低下。

Visual Basic 作为一种可视化、面向对象和采用事件驱动方式的结构化高级程序设计语言,简单易学、效率高并且可以直接用于各类Windows 环境下的应用程序。

因此,可以采用Visual Basic编写的应用程序来解决经纬度与图幅号之间相互转换的问题,提高工作效率。

本文详细介绍了我国基本比例尺地形图分幅和编号的具体规定,并在Visual Basic环境下编写应用程序,准确高效地解决了经纬度与图幅号相互转换的问题。

关键词:经纬度;地形图图幅号;Visual Basic
目录
1、绪论 (1)
2、我国基本比例尺地形图分幅和编号 (2)
2.1 我国基本比例尺地形图分幅 (2)
2.2 我国基本比例尺地形图编号 (3)
2.3 我国基本比例尺地形图编号应用的公式 (7)
3、Visual Basic 简介 (12)
3.1 Visual Basic的发展 (12)
3.2 Visual Basic的特点 (12)
3.3 Visual Basic 开发应用程序的一般步骤 (14)
4、Visual Basic环境下经纬度与图符号转换程序设计 (15)
4.1 建立用户界面,设置窗口和控件属性 (15)
4.2 编写程序代码 (18)
4.3 保存生成可执行文件 (19)
4.4 程序运行演示 (19)
结论 (21)
参考文献 (22)
致谢 (23)
附录 (24)
外文翻译原文 (34)
外文翻译译文 (38)
1绪论
1.1国家基本地形图的特点
(1)具有统一的大地坐标系统和高程系统,我国国家基本地形图统一采用1980年“中国国家大地坐标系统”和“1985年国家高程基准”。

(2)具有完整的比例尺系列和分幅编号系统。

国家基本地形图按统一规定的经差和纬差进行分幅,每幅图的内图廓都是由经线和纬线构成,在国际百万分之一地图分幅编号基础上,建立了各级比例尺地形图的图幅编号系统。

(3)国家基本地形图是依据国家测绘管理部门统一定制的测量与编绘规范和《地形图图式》完成的,以便能够保证由各地方测绘部门分工完成的地形图,在质量和规格上的完全统一。

1.2国家基本地形图分幅的编号
地形图分幅编号的方法很多,1990年底之前的国家基本地形图采用的是行列-自然序列的编号方法,我国称为原国家基本地形图编号法。

其中1:100万地形图采用的是行列式编号法,而1:50万以下七种比例尺地形图则采用行列-自然序列编号法。

1991年之后的国家基本地形图编号一律采用行列式的编号方法,称为新国家基本地形图编号法。

本文所介绍的就是1991年之后的新国家基本地形图编号法。

以1993-07-01实施的国家基本比例尺地形图分幅和编号标准(GB/T 13989-92)为依据。

1.3论文主要内容
(1)我国基本比例尺地形图分幅和编号
a、我国地形图的分幅以及地形图编号方法;
b、我国地形图编号应用的公式以及图幅号与经纬度相互转换应用举例;
(2)Visual Basic 简介
a、Visual Basic编程语言的特点;
b、Visual Basic开发应用程序的一般步骤;
(3)Visual Basic 环境下经纬度和图符号的相互转换
a、Visual Basic编写该程序的步骤;
b、经纬度和图符号的相互转换的Visual Basic程序运行演示。

2 我国基本比例尺地形图分幅和编号
2.1我国基本比例尺地形图的分幅
我国基本比例尺地形图均以1:1000 000地形图为基础,按规定的经差和纬差划
分图幅。

1:1000 000地形图的分幅采用国际1:1000 000地图分幅标准。

每幅1:1000 000地形图的范围是经差6°、纬差4°;纬度60°~76°之间为经差12°、纬差4°;纬度76°~88°之间为经差24°、纬差4°(由于我国没有纬度60°以上的区域。

因此本文仅仅介绍经差6°、纬差4°的分幅情况)。

表 1.1
2.2我国基本比例尺地形图的编号
2.2.1 1:1000 000地形图的编号
1:1000 000地形图的编号采用国际1:1000 000地图编号标准。

从赤道算起,每
纬差4°为一行,至南、北纬88°各分为22行,依次用大写拉丁字母(字符码)A 、B 、C 、…V 表示其相应符号;从180°经线算起,自西向东每经差6°为一列,全球分为60列,依次用阿拉伯字母(数字码)1、2、3、…60表示其相应列号。

由经线和纬线所围成的每一个梯形小格(图1所示)为一幅1:1000000地形图,它们的编号由该图所在的行号与列号组合而成。

(如北京所在的1:1000000地形图的图号为J 50) 例:北京所在的1:1000000地形图的图号为J 50
J 50
图 1.1 北半球东侧1:1000 000地形图分幅编号
我国地处东半球赤道以北(见图2),图幅范围在经度72°~138°、纬度0°~56
°
内,包括行号为A、B、C、……N的14行、列号为43、44、……53的11列。

图1.2 我国1:1000 000地形图的分幅编号
2.2.2 1:500 000~1:5000 地形图的编号
1:500 000~1:5000 地形图的编号均以1:1000 000 地形图编号为基础,采用行列编号方法(见图3)。

即将1:1000 000地形图按照所含比例尺地形图的经差和纬差划分为若干行和列,横行从上到下、纵列从左到右按顺序分别用三位阿拉伯数字(数字码)表示,不足三位者前面补零,取行号在前、列号在后的排列形式标记;各比例尺地形图分别采用不同的字符作为其比例尺代码(见表2);
1:500 000~1:5000地形图的图号均由其所在1:1000 000地形图的图号、比例尺代码和各图幅的行、列号,共十位码组成(见图4)。

图 1.3

1.4
例1:1:500 000地形图编号(见图5)
晕线所示图号为J50B001002
图 1.5
例2:1:250 000 地形图编号(见图6)
晕线所示的图号为J50C003003
图 1.6
例3: 1:100 000 地形图的编号(见图1.7)
单晕线所示图号为J50D0100102
例4: 1:50 000 地形图的编号(见图1.7)
双晕线所示图号为 J50E017016
例5: 1:25 000 地形图的编号(见图1.7)
平行晕线所示图号为J50F042002
例6: 1:10 000 地形图的编号(见图1.7)
黑块所示图号为J50G093004
例7: 1:5000 地形图的编号(见图1.7)
1:1000 000地形图图幅最东南角的1:5000地形图图号为J50H192192
图 1.7
2.3我国基本比例尺地形图编号应用的公式
2.3.1已知图幅内某点的经、纬度或图幅西南图廓点的经、纬度计算其编号A、按下列公式计算1:1000 000地形图图幅编号:
a = [/4°] + 1 1.1
b = [/6°] +31 1.2
式中[ ]------表示取整;
a-----1:1000 000地形图图幅所在纬度带字符码所对应的数字码;
b-----1:1000 000地形图图幅所在经度带的数字码;
-----图幅内某点的经度或图幅西南图廓点的经度;
----图幅内某点的纬度或图幅西南图廓点的纬度;
例1:某点经度为114°33′45″,纬度为39°22′30″,计算其所在图幅的编号。

a =[39°22′30″/4°] + 1 = 10 (对应字符码为J)
b =[114°33′45″/6°]+31 =50
所以,该点所在1:1000 000地形图图号为J 50
B、按下式计算所求比例尺地形图在1:1000 000地形图图号后的行、列号:
C = 4°/-[(/4°) /] 1.3
d = [() /] + 1 1.4
式中:()------表示商取余;
[ ] ------表示取整;
c -------所求比例尺地形图在1:1000 000地形图图号后的行号;
d--------所求比例尺地形图在1: 1000 000地形图图号后的列号;
--------图幅内某点的经度或图幅西南图廓点的经度;
-------图幅内某点的纬度或图幅西南图廓点的纬度;
-------所求比例尺地形图分幅的经差;
-------所求比例尺地形图分幅的纬差。

以经度114°33′45″,纬度39°22′30″的某点为例,计算各比例尺地形图的编号。

例2:1:500 000地形图的编号
=2°=3°
c = 4°/2°—[(39°22′30″/4°)/2°]
=2—[3°22′30″/2°]
=001
d =[(114°33′45″/6°)/3°] +1
=[33′45″/3°] +1
=001
1:500 000地形图的编号为J50B001001
例3: 1:250 000 地形图的编号
=1°=1°30′
c = 4°/1°—[(39°22′30″/4°)/1°]
=4—[3°22′30″/1°]
=001
d =[(114°33′45″/6°)/1°30′] +1
=[33′45″/1°30′] +1
=001
1:250 000地形图的编号为J50C001001
例4: 1:100 000地形图的编号
=20′=30′
c =4°/20′—[(39°22′30″/4°)/20′]
=12—[3°22′30″/20′]
=002
d =[(114°33′45″/6°)/30′] +1
=[33′45″/30′] +1
=002
1:100 000地形图编号为J50D002002
例5:1:50 000地形图的编号
=10′=15′
c =4°/10′—[(39°22′30″/4°)/10′]
=24 —[(39°22′30″/4°)/10′]
=004
d =[(114°33′45″/6°)/15′] +1
=[33′45″/15′] +1
=003
1:50 000地形图编号为J50E004003
例6:1:25 000地形图的编号
=5′=7′30″
c =4°/5′—[(39°22′30″/4°)/5′]
=48 —[3°22′30″/5′]
=008
d=[(114°33′45″/6°)/7′30″] +1 =[33′45″/7′30″] +1
=005
1:25 000地形图的编号为J50F008005
例7: 1:10 000地形图的编号
=2′30″=3′45″
c =4°/2′30″—[(39°22′30″/4°)/2′30″]
=96 —[3°22′30″/2′30″]
=015
d =[(114°33′45″/6°)/3′45″] +1
=[33′45″/3′45″] +1
=010
1:10 000地形图的编号为J50G015010
例8: 1:5 000地形图的编号
=1′15″=1′52.5″
c =4°/1′15″—[(39°22′30″/4°)/1′15″]
=96 —[3°22′30″/1′15″]
=030
d =[(114°33′45″/6°)/1′52.5″] +1
=[33′45″/1′52.5″] +1
=019
1:5 000地形图的编号为J50H030019
2.3.2已知图号计算该图幅西南图廓点的经、纬度
按下列公式计算该图幅西南图廓点的经、纬度:
= (b-31) 6°+(d-1) 1.5
= (a-1) 4°+(4°/-c) 1.6
式中: ------图幅西南图廓点的经度;
------图幅西南图廓点的纬度;
a --------1:1000 000地形图图幅所在经纬带字符码所对应的数字码; b---------1:1000 000地形图图幅所在经纬带的数字码;
c---------该比例尺地形图在1:1000 000地形图图号后的行号;
d---------该比例尺地形图在1:1000 000地形图图号后的列号;
--------该比例尺地形图分幅的经差;
--------该比例尺地形图分幅的纬差。

例1:图号J50B001001,求其西南图廓点的经、纬度。

a = 10;
b = 50;
c = 1;
d = 1; =2°;=3°
=(50—31)6°+(1—1)3°
=114°
=(10—1)4°+(4°/2°—1)2°
=38°
该图幅西南图廓点的经、纬度分别为114°、38°
例2:图号J50D002002,求其西南图廓点的经、纬度。

a = 10;
b = 50;
c = 2; =20′;=30′
=(50—31)6°+(2—1)3°
=114°30′
=(10—1)4°+(4°/20′—2)20′
=39°20′
该图幅西南图廓点的经、纬度分别为114°30′、39°20′
3 Visual Basic 简介
3.1 Visual Basic的发展
Microsoft(微软)公司在1991年推出Visual Basic 1.0版,获得了巨大成功。

从1.0到4.0版,Visual Basic只有英文版,1997年推出的5.0版出现了中文版本,大大方便了中国用户。

1998年推出的6.0版,是目前使用的最为广泛的版本。

随着版本的改进,Visual Basic已经逐渐发展为简单易学、功能强大的编程工具。

Visual Basic 6.0是专门为Microsoft的32位操作系统设计的,可用来建立32位的应用程序。

在Windows9x、Windows NT、Windows98以及以上版本,Visual Basic 6.0的编译器可以自动生成32位应用程序。

这样编写的应用程序,在32位操作系统下运行,速度更快、更安全,并且更适合在多任务环境下运行,这也是本课题选择Visual Basic 6.0编写该程序的原因之一。

3.2 Visual Basic的特点(选择VB的原因)
Visual Basic是在BASIC语言基础上研制而成的,它具有BASIC语言简单而不贫乏的优点,同时
又增加了结构化和可视化程序语言功能。

总的来看Visual Basic 主要有以下特点:
(1)可视化编程
传统的程序设计语言在设计程序时,都是通过编写程序代码来设计用户界面,再设计的过程中是看不到界面的实际显示效果的,必须编译后运行程序才能观察。

如果对界面的效果不满意,还要回到程序中去修改。

有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发的效率。

Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量代码程序,只需要按设计要求的屏幕布局,利用系统提供的工具,在屏幕上“画”出各种“部件”,即Visual Basic内部控件,并且设置这些控件的属性。

Visual Basic会自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而大大提高了程序设计的效率。

(2)面向对象的程序设计
Visual Basic 6.0支持面向对象的程序设计,但它与一般的面向对象程序设计语言(C++)不完全相同。

在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic 6.0则是应用面向对象的程序设计方法(00P),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实
在的东西。

在对象设计的过程中,不必编写建立和描述每个对象的程序代码,而是用工具“画”在界面上,Visual Basic自动生成对象的程序代码并封装起来。

每个对象以图形方式显示在界面上,都是可视的。

(3)结构化程序设计语言
Visual Basic是在BASIC和Quick BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式,其语句简单易懂;其编辑器支持彩色代码,可以自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。

Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并同时判断每个语句的语法错误。

在设计Visual Basic程序的过程中,随时可以运行程序,而在整个应用程序设计好之后,可以编译生成可执行(.exe)文件,脱离Visual Basic环境,直接在Windows环境下运行。

(4)事件驱动编程机制
Visual Basic通过事件来执行对象的操作。

一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。

例如,命令按钮是一个对象,当用户单击该按钮时,会产生一个“单击”(Click)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。

在用Visual Basic编写应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程,这些过程分别面向不同的对象,由用户操作引发某个事件来驱动执行某种特定的功能,或者由事件驱动程序来调用通用过程来执行指定的操作。

这样就可以方便编程的过程和提高编程的效率。

随着版本的更新,Visual Basic已成为真正专业化的大型开发语言和环境,不仅功能越来越强,而且更容易使用。

Visual Basic 6.0所提供的开发环境与Windows具有完全一致的界面,使用更方便,其代码效率已达到Visual C++的水平。

另外,一个计算机程序通常可以分为三部分,即输入、处理和输出。

计算机通过输入操作来接收数据,然后对数据进行处理,并将处理完的数据以完整有效的方式提供给用户。

而Visual Basic的输入输出有着十分丰富的内容和形式,它提供了多种手段,并且可以通过各种控件实现输入输出操作,使输入输出灵活、多样、方便、形象直观。

基于Visual Basic的以上特点,结合经纬度与图幅号相互转化应用的公式对应用程序中数据输入-处理-输出过程的要求,选择Visual Basic 6.0作为程序编译器,能够使程序设计的过程更加方便、快捷、高效,容易掌握;并且能够在任何32位Windows操作系统下更快、更安全地运行设计好的应用程序。

3.3 Visual Basic 开发应用程序的一般步骤
Visual Basic的最大特点是以最快的速度和效率开发具有良好用户界面的应用程序。

如上所述,Visual Basic的对象已经被抽象为窗体和控件,因而大大简化了程序设计的过程。

一般来说,利用Visual Basic开发程序时,需要三个步骤:建立可视化用户界面;设置可视化界面属性;编写事件驱动的代码;保存和运行程序。

(1)建立用户界面
用户界面由对象,即窗体和控件组成,所有的控件都放在窗体上(一个窗体最多可容纳255个控件),程序中的所有信息都要通过窗体显示出来,它是应用程序的最终用户界面。

在应用程序中要用到哪些控件,就在窗体建立相应的控件。

程序运行后,将在屏幕上显示由窗体和控件组成的用户界面。

(2)设置窗体和控件的属性
建立界面后,就可以设置窗体和每个控件的属性。

在实际的应用程序设计中,建立界面和设置属性可以同时进行,每画完一个控件,接着就设置该控件的属性。

也可以在所有的对象都建立完成后,再统一设置对象的属性。

具体方法依个人习惯而定。

(3)编写程序代码
Visual Basic采用事件驱动编程机制,因此大部分程序都是针对窗体中各个控件所能支持的方法或事件编写的,这样的程序称为事件过程。

例如,命令按钮可以接受鼠标事件,如果单击该按钮,鼠标事件就调用相应的事件过程来做出响应。

多数情况下,特别是小型应用程序,所编写的程序通常都由事件过程组成,即针对控件或窗体的事件编写代码。

(4)保存和运行程序
在Visual Basic中,应用程序是以工程文件的形式保存在磁盘上的。

选择相应的磁盘路径保存应用程序。

运行程序则有解释和编译两种模式,编译模式需要生成相应的可执行文件,需要时,调用即可,是脱离了Visual Basic环境的;而解释模式,则必须在Visual Basic
环境下打开该工程,而后单击“启动”按钮或者选择“运行”菜单中的“启动”命令。

4 Visual Basic 环境下经纬度与图符号转换程序设计
该应用程序包括两大部分功能,即1、已知经纬度而求地形图的图幅号;2、已知地
形图图幅号求该图幅西南图廓点的经纬度。

如果将两部分功能都放在一个用户界面上,将会产生过多的控件而使窗口显得凌乱,影响用户界面的美观;所以,为了使界面看起来简洁美观,操作简单快捷,将程序设计为多重窗口(一个主窗口form1,两个子窗口form2、form3)模式,通过主窗口的操作来打开其子窗口。

下面就按照Visual Basic 开发应用程序的步骤来详细介绍该程序设计的过程:
4.1 建立用户界面,设置窗口和控件属性
Form1(经纬度与图符号相互转换)的界面设计如下:
图3.1
Form1窗体和控件的属性设置:
Frame 1
Label 1
Image 1
Command 1
Command3
Form2(已知经纬度求图幅号)的界面设计如下:
Command 3 Text 2
Image 1 Text 1
Command 1
Command 4 Text 3
Command 5
图3.2
Form2窗体和控件的属性设置:
表 3.2
Form3(已知图幅号求经纬度)界面设计如下:
图3.3
Form3窗体和控件的属性设置: 表 3.3
Command 1
Command 3
Command 4
Text 6
Text 11
4.2 编写程序代码
4.2.1设计思路
(1)Form1(图3.1)
该窗口的主要作用是来选择计算的模式,通过选择Option1或者Option2,单击“确定”按钮来打开相应的窗口进行运算。

单击“返回”按钮就会结束程序的运行。

另外,单击“关于”按钮,会弹出一个消息框,来提示用户本软件的使用范围。

如果没有对模式进行选择就单击“确定”按钮,应该弹出一个提示性质的消息框,提醒用户选择需要的计算模式。

(2)Form2 (图3.2)
该窗口是已知经纬度来求图幅号的运算界面,要求用户输入图幅某点或者图幅西南图廓点的经纬度,来计算(转换)求得该图幅的图幅编号。

用户在相应文本框输入经纬度,并且选择比例尺之后,单击“转换”按钮,就会在下面的文本框内显示运算结果,如果没有按照要求输入经纬度(漏输或者超范围输入)或者没有选择比例尺,都应该弹出提示性消息框,提示用户正确输入经纬度,选择比例尺。

单击“输入说明”,会有提示消息框,说明输入数据的范围和格式,从而保证计算结果的正确性。

单击“刷新”按钮,就会清除所有文本框内的内容,从而重新输入数据、重新计算结果。

单击“返回”,Form2消失,界面返回Form1。

而单击“退出”则是退出该应用程序。

(3)Form3 (图3.3)
该窗口是已知图幅号求图幅西南图廓点经纬度的运算界面,要求用户输入正确的图幅号,来计算该图幅西南图廓点的经纬度。

用户输入正确的图幅号之后,单击“转换”,会在下面的文本框显示运算结果。

如果图幅号输入不正确(超范围,或者漏输),都会有相应的提示,提示用户输入正确的图幅号。

为了确保计算的正常进行,单击“输入说明”,就会弹出提示框,来说明图幅号的输入范围以及格式,其余按钮则与Form2中相应的按钮功能一致。

此外,为了方便用户输入图幅号,在一个文本框输入相应长度的字符后,下一个文本框应当自动获取焦点(光标位置)。

这些都应该在编写的程序代码中得以实现。

4.2.2编写程序代码
按照上述的设计思路,对每一个窗口和控件编写相应的程序代码,实现各个控件的功能,并保证操作和运算结果的正确性。

(具体的程序代码见附录。


4.3 保存并生成可执行(exe.)文件
在程序调试运行,确定没有问题之后,为了脱离Visual Basic环境,而直接在Windows环境下运行,就要对编写好的程序生成可执行的文件。

执行:“文件”→“生成XXX.exe”(其中XXX为可执行文件名)→选择文件保存路径。

若要使用该应用程序,只需要按照存储路径找到该应用程序,调用即可。

4.4 程序运行演示:
4.4.1已知经纬度求图幅号:
以经度114°33′45″,纬度39°22′30″的某点为例,计算1:25000地形图的编号
图 3.4
输入“经度:”114.3345,“纬度:”39.2230→单击“转换”按钮→“图幅号”显示:J 50 F 008 005
4.4.2已知图幅号求经纬度:
以图幅号J50D002002为例,求其西南图廓点的经、纬度:
图 3.5
按要求输入“地图图幅号:”J 50 D 002 002→单击“转换”按钮→显示“经度:”114°30′0″,“纬度:”39°20′0″
结论
本文依据国家基本比例尺地形图分幅和编号 GB/T 13989-92(1993-07-01实施),详细介绍了我国范围内基本比例尺地形图的分幅和编号,以及分幅编号所利用的公式。

在诸多地图学和测绘学等地学学科工作中,经纬度与地形图图幅号之间的相互转
换是经常遇到的问题,频繁的计算过程会大大降低工作的效率。

因此有必要编写应用
程序来快速准确的完成该转换,提高工作效率和准确率。

由于Visual Basic其自身的特点,非常适合用来编写该应用程序。

所以本文就按
照Visual Basic开发程序的步骤,具体地介绍利用Visual Basic6.0并结合我国基本
比例尺地形图分幅和编号所应用的公式编写该应用程序的详细步骤。

按照本文的描述,相关工作人员完全能够编写并使用该应用程序。

程序一旦正确无误地编写完成,并生
成可执行文件,便可以脱离Visual Basic环境,在Windows环境下直接运行。

这样,
就可以有效地解决经纬度与图幅号相互转换过程中频繁计算的问题,使得工作效率,
准确率大大提高。

参考文献
[1] 姜翔鸾、姜支一、吕玉霞,中华人民共和国国家标准-国家基本比例尺地形图分幅
和编号 GB/T 13989-92(1993-07-01实施),国家测绘局标准化研究所,1992 [2] 毛赞猷、朱良、周占鳌、韩雪培,新编地图学教程(第二版),高等教育出版社,
2008,2
[3] 邬伦、刘瑜、张晶、马修军、韦中亚、田原,地理信息系统-原理、方法和应用,
科学出版社,2011
[4] 教育部考试中心,全国计算机等级考试二级教程-Visual Basic语言程序设计
(2008年版),高等教育出版社,2008
[5]沈昭辉,数据库结构与数据库应用基础教程(第三部分 Visual Basic程序设计基
础),南开大学出版社,2007
[6] (百度文库)
[7] (土木工程网)
致谢
转眼间,大学四年就要结束了,感慨时光匆匆的同时,我也完成了自己的毕业设计论文。

做毕业设计的过程,其实也是对自己在大学时光所学知识的总结过程,书到用时方恨少,现在我已经意识到了自己专业知识的欠缺和学习习惯的不足,并将在今后的工作学习中不断弥补和提升自己。

同时,在完成这篇论文的过程中我得到了多方面的帮助。

在此,我要感谢我所有的任课老师,传授给我丰富的专业知识和其他各方面的业务知识,尤其要感谢杨育丽老师,定期对我的毕业论文做出耐心、细致的指导,对我所提出的问题都会认真、全面地解答并提出有用的建议,还提供给我们许多实用的参考资料。

还要感谢给我提供帮助,关心我的老师们,室友们,同学们,有你们的帮助,才能使这篇论文顺利地完成。

在此期间,我体会到了师生,及室友、同学之间的感情,这些也都是我在大学生活即将结束之际所收获的一份宝贵的财富。

希望我能够给老师、同学们交一份满意的答卷,也给自己的大学生活画一个完美的句号。

最后,再一次向以上提到的各位老师、同学提出真挚的感谢!谢谢你们!
2012年6月
附录
1 Form1(图3.1)程序代码:
(1) Command1:
Private Sub Command1_Click()
If Option1.Value = True Then
Form1.Hide
Form2.Show
ElseIf Option2.Value = True Then
Form1.Hide
Form3.Show
ElseIf Option1.Value = False And Option2.Value = False Then MsgBox "请选择模式!", 48, "错误提示"
End If
End Sub
(2) Command2:
Private Sub Command2_Click()
End
End Sub
(3) Command3:
Private Sub Command3_Click()
a = "软件介绍:"
b = "本软件适用于我国范围内的经纬度与地形图图幅号相互转换"
c = " 联系方式:QQ 497159625"
d = a + vbCrLf + b + vbCrLf + c
e = MsgBox(d, 0, "关于")
End Sub
2 Form2(图3.2)程序代码:
(1)Form:
Private Sub Form_Load()
Text3.Enabled = False
End Sub
(2)Command1:
Private Sub Command1_Click()
If Text1.Text = "" Or Text2.Text = "" Or Val(Text1.Text) < 72 Or Val(Text1.Text) > 138 Or Val(Text2.Text) < 0 Or Val(Text2.Text) > 60 Then
MsgBox "请正确输入经纬度!", 48, "错误提示"
End If
j = Val(Text1.Text)
w = Val(Text2.Text)
jd = Int(j) + (Int(j * 100) Mod 100) / 60 + ((j * 10000) Mod 100) / 3600 wd = Int(w) + (Int(w * 100) Mod 100) / 60 + ((w * 10000) Mod 100) / 3600 x = Int(wd) Mod 4 + wd - Int(wd)
y = Int(jd) Mod 6 + jd - Int(jd)
a = Chr(Int(wd / 4) + 65)
b = Str(Int(jd / 6) + 31)
If Option1.Value = True Then
Text3.Text = a & b
ElseIf Option2.Value = True Then
c = 2 - Int(x / 2)
d = Int(y / 3) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " B " & h & " " & l
ElseIf Option3.Value = True Then
c = 4 - Int(x / 1)
d = Int(y / 1.5) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " C " & h & " " & l ElseIf Option4.Value = True Then
c = 12 - Int(x / (1 / 3))
d = Int(y / 0.5) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " D " & h & " " & l ElseIf Option5.Value = True Then
c = 24 - Int(x / (1 / 6))
d = Int(y / 0.25) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " E " & h & " " & l ElseIf Option6.Value = True Then
c = 48 - Int(x / (1 / 12))
d = Int(y / (1 / 8)) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " F " & h & " " & l ElseIf Option7.Value = True Then
c = 96 - Int(x / (1 / 24))
d = Int(y / (23 / 400)) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " G " & h & " " & l ElseIf Option8.Value = True Then
c = 192 - Int(x / (1.25 / 60))
d = Int(y / (0.03125)) + 1
h = Format(c, "000")
l = Format(d, "000")
Text3.Text = a & b & " H " & h & " " & l
Else
MsgBox "请先选择比例尺!", 48, "错误提示"
End If
End Sub
(2)Command2:
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
(3)Command3:
Private Sub Command3_Click()
a = "我国经度范围 72°~138°"
b = "我国纬度范围0°~52°"
c = "请输入我国范围内的经纬度:"
d = "例:39°22′30″则输入:39.2230"
e = a + vbCrL
f + b + vbCrLf + c + vbCrLf + d
f = MsgBox(e, 0, "输入说明:")
End Sub
(4)Command4:
Private Sub Command4_Click()
Form2.Hide
Form1.Show
End Sub
(5)Command5:
Private Sub Command5_Click()
End
End Sub
3 Form3(图3.3)程序代码:
(1) Command1:
If Text1.Text = "A" Or Text1.Text = "a" Then a = 1
ElseIf Text1.Text = "B" Or Text1.Text = "b" Then a = 2
ElseIf Text1.Text = "C" Or Text1.Text = "c" Then a = 3
ElseIf Text1.Text = "D" Or Text1.Text = "d" Then a = 4
ElseIf Text1.Text = "E" Or Text1.Text = "e" Then a = 5
ElseIf Text1.Text = "F" Or Text1.Text = "f" Then a = 6
ElseIf Text1.Text = "G" Or Text1.Text = "g" Then a = 7
ElseIf Text1.Text = "H" Or Text1.Text = "h" Then a = 8
ElseIf Text1.Text = "I" Or Text1.Text = "i" Then a = 9
ElseIf Text1.Text = "J" Or Text1.Text = "j" Then a = 10
ElseIf Text1.Text = "K" Or Text1.Text = "k" Then a = 11
ElseIf Text1.Text = "L" Or Text1.Text = "l" Then a = 12
ElseIf Text1.Text = "M" Or Text1.Text = "m" Then a = 13
ElseIf Text1.Text = "N" Or Text1.Text = "n" Then a = 14
Else
MsgBox "请输入我国范围内的图幅行号!", 48, "错误提示"
End If
If Val(Text2.Text) < 43 Or Val(Text2.Text) > 53 Or Text1.Text = "" Or Text2.Text = "" Or Text4.Text = "" Or Text5.Text = "" Then
MsgBox "请输入我国范围内的图幅列号!", 48, "错误提示"
End If。

相关文档
最新文档