毕业设计(论文)-基于VB的测量坐标系统的转换.doc

上传人:哈尼dd 文档编号:3283557 上传时间:2019-08-08 格式:DOC 页数:32 大小:707.02KB
返回 下载 相关 举报
毕业设计(论文)-基于VB的测量坐标系统的转换.doc_第1页
第1页 / 共32页
毕业设计(论文)-基于VB的测量坐标系统的转换.doc_第2页
第2页 / 共32页
毕业设计(论文)-基于VB的测量坐标系统的转换.doc_第3页
第3页 / 共32页
毕业设计(论文)-基于VB的测量坐标系统的转换.doc_第4页
第4页 / 共32页
毕业设计(论文)-基于VB的测量坐标系统的转换.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)-基于VB的测量坐标系统的转换.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于VB的测量坐标系统的转换.doc(32页珍藏版)》请在三一文库上搜索。

1、1 GDGM-QR-03-077-A/0 Guangdong College of Industry & Commerce 毕业论文毕业论文 Graduation Paper 题目:基于 VB 的测量坐标系统的转换 The Coordinate system Conversion based on VB 系系 别别: 测测绘绘信信息息遥遥感感工工程程系系 班班 级级: 0 08 8 级级( 2 2)班班 学学生生姓姓名名: 学学 号号: 指指导导老老师师: 完完成成日日期期: 2 20 01 11 1 年年 5 5 月月 1 14 4 日日 2 指导教师评语: 初评成绩: 指导教师签名: 年

2、月 日 毕业论文(设计)评审小组意见: 终评成绩: 组长签章: 年 月 日 备注 3 目录目录 目录目录3 第一章第一章 绪论绪论1 第第 二二 章章 坐标系统坐标系统3 2.1 坐标系统简介.3 2.1.1 天球坐标系.3 2.1.2 地球坐标系4 2.2 参心系与地心系.5 2.3 常用的坐标系统6 2.3.1 大地坐标系统.6 2.3.2、WGS84 坐标系.6 2.3.3、ITRF 框架.7 2.3.4、BJ54 坐标系.8 2.3.5.XIAN80 坐标系.9 2.3.6、新 BJ54 坐标系9 2.3.7、CGCS2000 坐标系统.10 2.4 地方独立坐标系10 第三章第三章

3、坐标转换的理论基础坐标转换的理论基础12 3.1 大地坐标系统与空间直角坐标系统的转换原理12 3.2 空间直角坐标系统的相互转换原理13 第四章第四章 基于基于 VBVB 的坐标转换的坐标转换15 4.1 VB 简介.15 4.2 系统开发语言的选择VB6.0.15 4.3 利用 VB 实现空间直角坐标系统的相互转换17 第五章第五章 结论结论25 5.1 大地坐标(BLH)对平面直角坐标(XYZ).25 5.2 北京 54 全国 80 及 WGS84 坐标系的相互转换25 5.3 任意两空间坐标系的转换26 参考文献参考文献27 致谢致谢28 4 摘要摘要 测量学是一门古老而富有生命力的学

4、科,其应用范围很广,在国民经济和 国防建设中发挥着十分重要的作用。随着现代科技的发展,测量学也得到了迅 猛的发展。特别是计算机科学技术、航空航天科学技术、激光技术、遥感技术、 图像处理技术及模式识别等的发展,对测绘科学的发展产生了巨大的推动作用。 坐标系统是测量非常重要的,测量坐标系统的种类繁多。正是因为坐标系 统的繁多,对测量工作造成了很大的影响。本文主要论述测绘中常用的坐标系 统;坐标系统转换的原理以及基于 VB 对坐标系统转换的实现步骤等。 关键字:坐标系统;北京 1954-坐标系统;西安 1980 坐标系统;世界大地 坐标系 WGS-1984;转换;VB 1 第一章第一章 绪论绪论 测

5、量的发展可以追溯到两千多年以前,从人们确认地球是个圆球并实测它 的大小开始,大体可分为:古代大地测量、经典大地测量和现代大地测量三个 阶段。从二十实际中期莫洛琴斯基发展斯托克司理论后的 200 期间,大地测量 发展更为迅速!人造地球卫星技术快速发展,使其在空间科学、气象、遥感、 通讯、导航、地球科学、地球动力学、天文学、大地测量、资源勘查、灾情预 报、环境监测、以及军事科学诸领域中得到了广泛的应用。 为了说明点的位置、运动的快慢、方向等,必须选取其坐标系。在参照系 中,为确定空间一点的位置,按规定方法选取的有次序的一组数据,这就叫做 “坐标” 。在某一问题中规定坐标的方法,就是该问题所用的坐标

6、系。坐标系的 种类很多,常用的坐标系有:笛卡尔直角坐标系、平面极坐标系、柱面坐标系 (或称柱坐标系)和球面坐标系(或称球坐标系)等。在一个国家或一个地区范围 内统一规定地图投影的经纬线作为坐标轴,以确定国家或某一地区所有测量成 果在平面或空间上的位置的坐标系统。图 1-1 为高斯投影坐标系。 图 1-1 高斯投影坐标系 测绘常用的坐标系统有北京 1954 坐标系统、西安 1980 坐标系统、WGS- 1984 坐标系统以及 CGCS2000 坐标系统,再加上地方常用的坐标系统。在工程 应用中我们经常会遇到已知坐标不是此工程所涉及到的坐标系统,为此大大影 2 响到工程的进度。所以我们急需采用坐标

7、转换的方法求,把已知点坐标转换到 我们需要的坐标系统中去。这就是坐标转换的意义。 3 第第 二二 章章 坐标系统坐标系统 2.12.1 坐标系统简介坐标系统简介 由物理学可知,为了说明点的位置、运动的快慢、方向等,必须选取其坐 标系。在参照系中,为确定空间一点的位置,按规定方法选取的有次序的一组 数据,这就叫做“坐标” 。天文测量和大地测量工作中,常常把想象的天球和地 球(椭球)作为参考系,并在天球和地球(椭球)上简历了多种坐标系统。 坐标系统是由坐标原点位置、坐标轴的指向和尺度三个要素决定的。坐标 系统通常有三种定义方式:理论坐标系统、协定坐标系、协议坐标系。我们在 测绘中常用到的是协议坐标

8、系。按描述对向分类,可以把坐标系统分为天球坐 标系统和地球(椭球)坐标系统。 2.1.1 天球坐标系 天球坐标系是利用基本星历表的数据把基本坐标系固定在天球上,星历表 中列出一定数量的恒星在某历元的天体赤道坐标值,以及由于岁差和自转共同 影响而产生的坐标变化。常用的天球坐标系:天球赤道坐标系、天球地平坐标 系和天文坐标系。 在天球坐标系中,天体的空间位置可用天球空间直角坐标系或天球球面坐 标系两种方式来描述。 1. 天球空间直角坐标系的定义 地球质心 O 为坐标原点,Z 轴指向天球北极,X 轴指向春分点,Y 轴垂直于 XOZ 平面,与 X 轴和 Z 轴构成右手坐标系。则在此坐标系下,空间点的位

9、置由 坐标(X,Y,Z)来描述。 2天球球面坐标系的定义 地球质心 O 为坐标原点,春分点轴与天轴所在平面为天球经度(赤经)测 量基准基准子午面,赤道为天球纬度测量基准而建立球面坐标。空间点的 位置在天球坐标系下的表述为(r,) 。 天球空间直角坐标系与天球球面坐标系的关系可用图 2-1 表示: 4 图 2-1 天球直角坐标系与球面坐标系 对同一空间点,天球空间直角坐标系与其等效的天球球面坐标系参数间有 如下转换关系: (2-1) 式中, (2-2) 222 22 arctan rXYZ Y X Z XY =arct an 2.1.2 地球坐标系 地球坐标系有两种几何表达方式,即地球直角坐标系

10、和地球大地坐标系。 地球直角坐标系的定义 地球直角坐标系的定义是:原点 O 与地球质心重合,Z 轴指向地球北极,X 轴指向地球赤道面与格林尼治子午圈的交点,Y 轴在赤道平面里与 XOZ 构成右 手坐标系。 地球大地坐标系的定义 地球大地坐标系的定义是:地球椭球的中心与地球质心重合,椭球的短轴 cos sin sin Xr Yr Zr cos cos 5 与地球自转轴重合。空间点位置在该坐标系中表述为(L,B,H) 。 地球直角坐标系和地球大地坐标系可用图 2-2 表示: 图 2-2 地球直角坐标系和大地坐标系 2.22.2 参心系与地心系参心系与地心系 参心系 大地坐标系是一种固定在地球上,随

11、地球一起转动的非惯性坐标系。大地 坐标系根据其原点的位置不同,分为地心坐标系和参心坐标系。地心坐标系的 原点与地球质心重合,参心坐标系的原点与某一地区或国家所采用的参考椭球 中心重合,通常与地球质心不重合。我国先后建立的 1954 年北京坐标系、1980 西安坐标系和新 1954 年北京坐标系,都是参心坐标系。这些坐标系为我国经济 社会发展和国防建设作出了重要贡献。但是,随着现代科技的发展,特别是全 球卫星定位技术的发展和应用,世界上许多发达国家和中等发达国家都已在多 年前就开始使用地心坐标系。 地心系 以地球质心为原点建立的空间直角坐标系,或以球心与地球质心重合的地 球椭球面为基准面所建立的

12、大地坐标系。 以地球质心(总椭球的几何中心)为原点的大地坐标系。通常分为地心 空间直角坐标系 (以 x,y,z 为其坐标元素)和地心大地坐标系 (以 B,L,H 为 其坐标元素)。地心坐标系是在大地体内建立的 O-XYZ 坐标系。原点 O 设在大地 体的质量中心,用相互垂直的 X,Y,Z 三个轴来表示,X 轴与首子午面与赤道 面的交线重合,向东为正。Z 轴与地球旋转轴重合,向北为正。Y 轴与 XZ 平面 6 垂直构成右手系。 2.32.3 常用的坐标系统常用的坐标系统 我国常用的坐标系统有:1 大地坐标系统,2、WGS84 坐标系,3、ITRF 框 架 4、BJ54 坐标系,5.XIAN80

13、坐标系,6、新 BJ54 坐标系,7、CGCS2000 坐标 系统 2.3.1 大地坐标系统 大地坐标系统是表示点在大地坐标系中的位置,用经度、纬度和高程表示 (1)经、纬度 经纬度有天文经纬度和大地经纬度之分。天文经、纬度用 表示,以 铅垂线为基准线,用天文测量方法测定。 在测量学中常用到的是大地经纬度。大地经、纬度用 L、B 表示,以地球 椭球的发现为计算的基准线,用大地测量的方法计算得到。 大地 同一点的天文经纬度和大地经纬度不相同,原因在于同点上的铅垂线和地 球椭球的法线不相重合。两者产生的夹角称之为垂线偏差。大地坐标系是采用 大地纬度、经度和大地高程来描述空间位置的。纬度是空间的点与

14、参考椭球面 的法线与赤道面的夹角;经度是空间的点与参考椭球的自转轴所在的面与参考 椭球的起始子午面的夹角;大地高斯空间的点沿着参考椭球的法线方向到参考 椭球面的距离。 2.3.2、WGS84 坐标系 WGS-84 的定义:WGS-84 是修正 NSWC9Z-2 参考系的原点和尺度变化,并旋 转其参考子午面与 BIH 定义的零度子午面一致而得到的一个新参考系,WGS-84 坐标系的原点在地球质心,Z 轴指向 BIH1984.0 定义的协定地球极(CTP)方向, X 轴指向 BIH1984.0 的零度子午面和 CTP 赤道的交点,Y 轴和 Z、X 轴构成右手 坐标系。它是一个地固坐标系。 7 WG

15、S-84 椭球及其有关常数:WGS-84 采用的椭球是国际大地测量与地球物理 联合会第 17 届大会大地测量常数推荐值,其四个基本参数 长半径:a=63781372(m) ; 地球引力常数:GM=3986005108m3s-20.6108m3s-2; 正常化二阶带谐系数:C20=-484.1668510-61.310-9; J2=10826310-8 地球自转角速度:=729211510-11rads-10.15010-11rads-1 建立 WGS-84 世界大地坐标系的一个重要目的,是在世界上建立一个统一的 地心坐标系。 2.3.3、ITRF 框架 ITRF,International T

16、errestrial Reference Frame,国际地球参考框 架。它是由国际地球自转服务局(IERS) 按一定要求建立地面观测台站进行空间 大地测量,并根据协议地球参考系的定义,采用一组国际推荐的模型和常数系 统对观测数据进行处理,解算出各观测台站在某一历元的坐标和速度场,由此 建立的一个协议地球参考框架。它是协议地球参考系(CTRS,Conventional Terrestrial Reference System)的具体实现。CTRS 由原点、定向、尺度和时 变四个基本元素来定义,各元素定义如下: 1)原点定为包括海洋和大气的地球质量中心; 2)定向采用国际时间局(BIH,Bure

17、au International de IHeure) 1984.0 结果; 3)尺度是广义相对论意义下,局部地球框架的尺度; 4)时变遵循地壳板块运动相对于地球整体无旋转,即地壳不受剩余地球自 转的影响。 ITRF 每年通过 IERS 技术文件向世界各国有关机构公布 ITRFyy。年序 yy 指 2 20 5 J c 8 明了 ITRF 在框架形成过程中,使用的有效数据所至的最终年代,如 ITRF97 表 明以坐标和速率表示的框架,所利用的有效数据一直到 1997 年。 ITRF 采用了 VLB I(甚长基线干涉) 、SLR(激光测卫) 、LLR(激光测月) 、 DOR IS(多普勒卫星跟踪

18、和无线电定位系统)和 GPS(全球定位系统)等多种 空间大地测量技术,它是综合多个数据分析中心的解算结果,由一系列测站相 对于某一参考历元的坐标和位移速度构成 ,即它是通过一组固定于地球表面而 且只作线性运动的大地点的坐标及坐标变化速率组成。 2.3.4、BJ54 坐标系 该坐标系源自于原苏联采用过的 1942 年普尔科夫坐标系。该坐标系采用的 参考椭球是克拉索夫斯基椭球,该椭球的参数为:a=6378245 f=1/298.3 BJ54 坐标系的缺点: 自 P54 建立以来,在该坐标系内进行了许多地区的局部平差,其成果得到 了广泛的应用。但是随着测绘新理论、新技术的不断发展,人们发现该坐标系

19、存在如下缺点: 1、 椭球参数有较大误差。克拉索夫斯基椭球差数与现代精确的椭球参数 相比,长半轴约大 109m。 2、 参考椭球面与我国大地水准面存在着自西向东明显的系统性的倾斜, 在东部地区大地水准面差距最大达+60m。这使得大比例尺地图反映地面的精度 受到影响,同时也对观测量元素的归算提出了严格的要求。 3、 几何大地测量和物理大地测量应用的参考面不统一。我国在处理重力 数据时采用赫尔默特 19001909 年正常重力公式,与这个公式相应的赫尔默特 扁球不是旋转椭球,它与克拉索夫斯基椭球是不一致的,这给实际工作带来了 麻烦。 4、 定向不明确。椭球短半轴的指向既不是国际是普遍采用的国际协议

20、 (原点)CIO(Conventional International Origin) ,也不是我国地极原点 JYD1968.0;起始大地子午面也不是国际时间局 BIH(Bureau International de I Heure)所定义的格林尼治平均天文台子午面,从而给坐标换算带来一些 不便和误差。 9 为此,我国在 1978 年在西安召开了“全国天文大地网整体平差会议” ,提 出了建立属于我国自己的大地坐标系,即后来的 1980 西安坐标系。但时至今日, 北京 54 坐标系仍然是在我国使用最为广泛的坐标系。 2.3.5.XIAN80 坐标系 1980 年西安大地坐标系统所采用的地球椭球参

21、数采用了 IAG 1975 年的推 荐值,它们是: a=6378140 f =1/298.257 大地原点:我国中部陕西泾阳县永乐镇。 椭球的短轴平行于地球的自转轴(由地球质心指向 1968.0 JYD 地极原点方 向) ,起始子午面平行于格林尼治平均天文子午面,椭球面同似大地水准面在我 国境内符合最好,高程系统以 1956 年黄海平均海水面为高程起算基准。 因 1980 年国家大地坐标系天文大地网整体平差,而 1954 年北京大地坐标 系属局部平差,使两系统的坐标值存在偶然差(也包括局部性系统差) 。两系统 间的差异,使地形图圈廓线位置发生变化,按 1980 年国家大地坐标系测的图与 按 1

22、954 年北京坐标系测的图,在接边处会产生裂隙,这给实际工作带来不便。 经分析,差值主要来自椭球参数和定位改变而产生的系统差部分。 2.3.6、新 BJ54 坐标系 为此,有关部门提出,将全国天文大地网整体平差的结果,通过 1980 年国 家大地坐标系的定位参数 dX、dY、dZ(表示克拉索夫斯基椭球中心相对于 1975 年国际椭球中心的三个坐标分量)和与克拉索夫斯基椭球参数 da、d,整体 换算到克拉索夫斯基椭球体上,形成一个新的坐标系。有称为 54 向 80 过渡坐 标系,有的称 1954 年北京坐标系(整体平差转换值) ,但习惯上称新 1954 年北 京坐标系。 椭球的几何参数与克氏椭球

23、一样,而定位与定向的依据又完全与 80 坐标系 一样。 新 54 与旧 54 比较:两系统同一点坐标的不同主要是由于一个是全国统一 平差的结果,另一个是局部平差的结果。 10 0 0 0 0 0 0 X Y Z 新 54 与 80 坐标系比较:两系统同一点坐标的不同主要是由于两系统定义 不同产生的系统差。 2.3.7、CGCS2000 坐标系统 CGCS2000 是以 ITRF 参考框架为基准,通过我国 GPS 连续运行基准站、空 间大地控制网以及天文大地网与空间大地网联合平差建立的地心大地坐标系统。 2000 国家大地坐标系的原点为包括海洋和大气的整个地球的质量中心;2000 国 家大地坐标

24、系的 Z 轴由原点指向历元 2000.0 的地球参考极的方向,该历元的指 向由国际时间局给定的历元为 1984.0 的初始指向推算,定向的时间演化保证相 对于地壳不产生残余的全球旋转,X 轴由原点指向格林尼治参考子午线与地球 赤道面(历元 2000.0)的交点,Y 轴与 Z 轴、X 轴构成右手正交坐标系。采用 广义相对论意义下的尺度。 2.42.4 地方独立坐标系地方独立坐标系 在生产实际中,我们通常把控制网投影到当地平均海拔高程面上,并以当 地子午线作为中央子午线进行高斯投影建立地方独立坐标系。地方独立坐标系 隐含一个与当地平均海拔高程对应的参考椭球地方参考椭球。地方参考椭 球的中心、轴向和

25、扁率与国家参考椭球相同,其长半径则有一改正量。 设地方独立坐标系位于海拔高程为 h 的曲面上,该地方的大地水准面差距 为 ,则该曲面离国家参考椭球的高度为: (2-3) dNh 又由独立坐标系的定义知: (2-4) /dNNda a 于是,地方参考椭球和国家参考椭球的关系可以表述为: 中心一致: (2-5) 11 0 0 0 x y z (/ )* L dadN na aada 轴向一致: (2-6) 扁率相等: (2-7) L aa 长半径有一增量: (2-8) 12 第三章第三章 坐标转换的理论基础坐标转换的理论基础 坐标转换问题的详细了解对于测量很重要。首先,我们要弄清楚几种坐标 表示方

26、法。大致有三种坐标表示方法:经纬度和高程,空间直角坐标,平面坐 标和高程。我们通常说的 WGS-84 坐标是经纬度和高程这一种,北京 54 坐标是 平面坐标和高程着一种。 现在,再搞清楚转换的严密性问题,在同一个椭球里的转换都是严密的, 而在不同的椭球之间的转换是不严密的。举个例子,在 WGS-84 坐标和北京 54 坐标之间是不存在一套转换参数可以全国通用的,在每个地方会不一样,因为 它们是两个不同的椭球基准。 那么,两个椭球间的坐标转换应该是怎样的呢?一般而言比较严密的是用 七参数法(包括布尔莎模型,一步法模型,海尔曼特等) ,即 X 平移,Y 平移, Z 平移,X 旋转,Y 旋转,Z 旋

27、转,尺度变化 K。要求得七参数就需要在一个地 区需要 3 个以上的已知点,如果区域范围不大,最远点间的距离不大于 30Km(经验值),这可以用三参数(莫洛登斯基模型) ,即 X 平移,Y 平移,Z 平 移,而将 X 旋转,Y 旋转,Z 旋转,尺度变化 K 视为 0,所以三参数只是七参数 的一种特例。在本软件中提供了计算三参数、七参数的功能。 在一个椭球的不同坐标系中转换可能会用到平面转换,现阶段一般分为四参数 和平面网格拟合两种方法,以四参数法在国内用的较多,举个例子,在深圳既 有北京 54 坐标又有深圳坐标,在这两种坐标之间转换就用到四参数,计算四参 数需要两个已知点。更精确的可以提供网格拟

28、合数据,本软件提供计算和应用四 参数的功能,也提供了网格拟合的功能。另外,还有高程拟合的问题,大地水准 面模型在国内用户中很少会用到,但在国际上已经是标准之一。 3.13.1 大地坐标系统与空间直角坐标系统的转换原理大地坐标系统与空间直角坐标系统的转换原理 设地面点 P 的坐标为 B、L、H,空间直角坐标为 X、Y、Z,坐标转换关系为: 13 (3-1) 2 ()coscos ()cossin (1)sin p p p xNHBL yNHBL zNeHB 式中, (3-2) 22 1sin a N eB (3-3) 22 2 2 ab e a e 为第一偏心率。 由空间直角坐标转换为大地坐标通

29、常采用下式: (3-4) 2 sin arctan tan (1) arctan( ) cos cos aeb B zW y L x R HN B 式中,(3-5) 22 22 222 1sin arctan WeB z xy Rxyz 用上式计算大地纬度时,先对式右端的 B 设定近似值,用逐次趋近法求 B 值, 0 B 直到两次求得的 B 值之差小于限差为止。 3.23.2 空间直角坐标系统的相互转换原理空间直角坐标系统的相互转换原理 地心坐标系和参心坐标系之间的转换,可采用布尔莎 7 参数模型转换。 假设为参心空间直角坐标向量;为地心空间直角坐标向量; ()TXYZ()CTSXYZ 为其间

30、的定位(平移)参数向量;为其间的定向(旋转) 000 XYZAAA xyz 参数向量;则两种坐标系之间转换的(布尔莎 7 参数法)公式为: 0 0 0 0 (1)0 0 x y CTSz XXXZY YYdKYZX ZZYXZ A A A 14 xyz (3-6) 式中 为三个坐标轴的旋转角度参数; dK 为尺度比变换参数。 上式适用于任意两个空间直角坐标系统间的相互转换。若把该式的认为 ()TXYZ 是地面参心坐标系,而是 GPS 测量用的 WGS-84 坐标系,则它便是将 ()CTSXYZ GPS 观测坐标值向地面参心坐标系转换的公式,若将地面参心坐标系转换为地 心坐标系,只需将转换参数的

31、符号改变即可。 15 第四章第四章 基于基于 VB 的坐标转换的坐标转换 4.14.1 VBVB 简介简介 VB 是 Microsoft 公司于 1991 年推出的基于窗口的可视化程序设计语言。 既继承了 Basic 语言易学、易用的优点,其编程系统又引入了面向对象的机制 和可视化设计方法。极大地降低了开发 Windows 应用程序的难度,使程序开发 的效率大大提高。VB6.0 有三种基本版本: 学习版。是 VB6.0 的基本版本。 专业版。为专业编程人员提供了一整套功能完备的开发工具,包括学习 版的全部功能以及 Activex 控件、Internet 控件等。 企业版。使得专业编程人员能够开

32、发强大的组内分布式应用程序。该版 本包括专业版的全部功能以及 Back Office 工具。 4.24.2 系统开发语言的选择系统开发语言的选择VB6.0VB6.0 道路放样程序具有很强的开放性。这儿的开放性是指在开发环境的选择上 可以有 VBA、VB、VC.net 、VC+、VC.net、DELPHI、JAVA 等多种支持 COM 标准 的开发语言。选用 VB 6.0 作为系统的开发语言是基于以下特点考虑: (1)面向对象 VB 采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问 题分解为一个个能够完成独立功能的相对简单的对象集合,所谓“对象”就是 一个可操作的实体,如窗体、窗体

33、中的命令按钮、标签、文本框等。面向对象 的编程就好像搭积木一样,程序员可根据程序和界面设计要求,直接在屏幕上 “画出”窗口、菜单、按钮等不同类型的对象,并为每个对象设置属性。 (2)事件驱动 16 在 Windows 环境下,程序是以事件驱动方式运行的,每个对象都能响 应多个不同的事件,每个事件都能驱动一段代码事件过程,该代码决定了 对象的功能。通常称这种机制为事件驱动。事件可由用户的操作触发,也可以 由系统或应用程序触发。例如,单击一个命令按钮,就触发了按钮的 Click(单 击)事件,该事件中的代码就会被执行。若用户未进行任何操作(未触发事件), 则程序就处于等待状态。整个应用程序就是由彼

34、此独立的事件过程构成。 (3)软件的集成式开发 VB 为编程提供了一个集成开发环境。在这个环境中,编程者可设计界面、 编写代码、调试程序,直至把应用程序编译成可在 Windows 中运行的可执行文 件,并为它生成安装程序。VB 的集成开发环境为编程者提供了很大的方便。 (4)结构化的程序设计语言 VB 具有丰富的数据类型,是一种符合结构化程序设计思想的语言,而且简 单易学。此外作为一种程序设计语言,VB 还有许多独到之处。 (5)强大的数据库访问功能 VB 利用数据控件可以访问多种数据库,VB 6.0 提供的 ADO 控件,不但可以 用最少的代码实现数据库操作和控制,也可以取代 Data 控件

35、和 RDO 控件。 (6)支持对象的链接与嵌入技术 VB 的核心是对对象的链接与嵌入(OLE)技术的支持,它是访问所有对象的 一种方法。利用 OLE 技术,能够开发集声音、图像、动画、字处理、Web 等对 象于一体的程序。 (7)网络功能 VB 6.0 提供了网络设计工具。利用这种技术可以动态创建和编辑 Web 页面, 使用户在 VB 中开发多功能的网络应用软件。 (8)多个应用程序向导 VB 提供了多种向导,如应用程序向导、安装向导、数据对象向导和数据窗 体向导,通过它们可以快速地创建不同类型、不同功能的应用程序。 17 (9)支持动态交换、动态链接技术 通过动态数据交换(DDE)的编程技术

36、,VB 开发的应用程序能与其他 Windows 应用程序之间建立数据通信。通过动态链接库技术,在 VB 程序中可方便地调用 用 C 语言或汇编语言编写的函数,也可调用 Windows 的应用程序接口(API)函 数。 (lO)联机帮助功能 在 VB 中,利用帮助菜单和 F1 功能键,用户可随时方便地得到所需要 的帮助信息。VB 帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获 取大量的示例代码,为用户的学习和使用提供方便。 4.34.3 利用利用 VBVB 实现空间直角坐标系统的相互转换实现空间直角坐标系统的相互转换 基于 VB 程序设计的前提是要有每个坐标系的各项参数和转换公式,通过第

37、三章 的讲解,我们已经大概掌握了。 首先,打开 VB6.0 ,进入 VB6.0 的主界面,选择”标准 EXE” (如图 4-1) 。 18 图 4-1 通过坐标的工具栏设计程序的主界面(如图 4-2) , 图 4-2 进入代码编辑界面,定义大地坐标系统和空间直角坐标系统的坐标 大地坐标系统代码如下: 空间大地坐标系 Public b As Double Public l As Double Public H As Double 空间直角坐标系代码如下: 空间直角坐标系 Public x As Double Public y As Double Public Z As Double 19 在整个

38、程序的设计过程中经常会用到关于角度的转换,所以我们定义了角 度转换的语句: Public Function Angular_Radian(Angular As Double) As Double 度小 数化弧度 Angular_Radian = Angular * PI / 180 End Function Public Function Radian_Angular(Radian As Double) As Double 弧度 化度小数 Radian_Angular = Radian * 180 / PI End Function Public Function DMS_Angular(DM

39、S As Double) As Double 度分秒化度 小数 Dim D As Double, M As Double, S As Double Dim tDMS As Double, tS As Double If DMS = 0 Then DMS_Angular = 0: Exit Function tDMS = DMS * 10000 S = Val(Right(CStr(Int(tDMS), 2) + tDMS - Int(tDMS) M = Val(Left(Right(CStr(Int(tDMS), 4), 2) D = Val(Left(Int(tDMS), Len(CStr(

40、Int(tDMS) - 4) DMS_Angular = D + M / 60 + S / 3600 End Function Public Function Angular_DMS(Angular As Double) As Double 度小数 化度分秒 Dim D As Double, M As Double, S As Double D = Int(Angular) M = Int(Angular - D) * 60) / 100 S = (Angular - D - M * 100 / 60) * 3600 / 10000 Angular_DMS = D + M + S End Fu

41、nction 20 计算计算卯酉圈半径 N 如下: Public Function GetN(a As Double, b As Double, RB As Double) As Double 计算卯酉圈半径 N Dim e2 As Double e2 = GetE2(a, b) GetN = a / Sqr(1 - e2 * (Sin(RB) 2) End Function 计算公式如下: 2 e Public Function GetE2(a As Double, b As Double) As Double 计算 e2 GetE2 = (a 2 - b 2) / a 2 End Func

42、tion 在此,最重要的就是坐标转换的公式了,代码如下: 空间大地坐标系转换空间直角坐标系(a 为地球长半轴,b 为地球短半轴) Public Sub BLH_XYZ(RBLH As BLH, a As Double, b As Double) 空 间大地坐标系转换空间直角坐标系(a 为地球长半轴,b 为地球短半轴) Dim e2 As Double, N As Double Dim BtoX As New XYZ e2 = GetE2(a, b) N = GetN(a, b, RBLH.b) BtoX.x = (N + RBLH.H) * Cos(RBLH.b) * Cos(RBLH.l)

43、BtoX.y = (N + RBLH.H) * Cos(RBLH.b) * Sin(RBLH.l) BtoX.Z = (N * (1 - e2) + RBLH.H) * Sin(RBLH.b) End Sub 关于空间直角坐标系转换空间大地坐标系,我们才用的是迭代法,代码如 下: Public Sub XYZ_BLH(IXYZ As XYZ, a As Double, b As Double) 空 间直角坐标系转换空间大地坐标系(迭代法) Dim e2 As Double, N As Double 21 Dim tB As Double, tH As Double, Lb As Double,

44、 lH As Double e2 = GetE2(a, b) If IXYZ.x = 0 Then XtoB.l = PI / 2 Else XtoB.l = Atn(IXYZ.y / IXYZ.x) End If If IXYZ.x = 0 And IXYZ.y = 0 Then XtoB.b = PI / 2 N = GetN(a, b, XtoB.b) XtoB.H = IXYZ.Z / Sin(XtoB.b) - N * (1 - e2) Else tB = Atn(IXYZ.Z / Sqr(IXYZ.x 2 + IXYZ.y 2) mGoTo: N = GetN(a, b, tB)

45、tH = Sqr(IXYZ.x 2 + IXYZ.y 2) / Cos(tB) - N Lb = Atn(IXYZ.Z + N * e2 * Sin(tB) / Sqr(IXYZ.x 2 + IXYZ.y 2) If Abs(Lb - tB) 1E-99 Then tB = Lb GoTo mGoTo Else XtoB.b = Lb N = GetN(a, b, XtoB.b) XtoB.H = Sqr(IXYZ.x 2 + IXYZ.y 2) / Cos(XtoB.b) - N End If End If End Sub 根据上述的设计语句,我们可以通过调用函数的方法实现坐标转换的操作,代

46、 22 码如下: Public BtoX As New XYZ Public XtoB As New BLH Public pi As Double Public Sub Command1_Click() Dim a As Double, b As Double a = 6378245 b = 6354950 pi = 3.1415926535898 Dim pBLH As New BLH Dim pXYZ As New XYZ If Option1.Value = True Then pBLH.b = Val(Me.Text1.Text) pBLH.l = Val(Me.Text2.Text

47、) pBLH.H = Val(Me.Text3.Text) Call BLH_XYZ(pBLH, a, b) pXYZ.x = BtoX.x pXYZ.y = BtoX.y pXYZ.Z = BtoX.Z Me.Text4.Text = Str(pXYZ.x) Me.Text5.Text = Str(pXYZ.y) Me.Text6.Text = Str(pXYZ.Z) End If If Option2.Value = True Then BtoX.x = Val(Me.Text4.Text) BtoX.y = Val(Me.Text5.Text) BtoX.Z = Val(Me.Text6

48、.Text) Call XYZ_BLH(BtoX, a, b) Dim w As Double 23 XtoB.l = Radian_Angular(XtoB.l) XtoB.l = Angular_DMS(XtoB.l) XtoB.b = Radian_Angular(XtoB.b) XtoB.b = Angular_DMS(XtoB.b) pXYZ.x = XtoB.b pXYZ.y = XtoB.l pXYZ.Z = XtoB.H pXYZ.x = Format(XtoB.b, “#.00000000 “) pXYZ.y = Format(XtoB.l, “#.00000000 “) pXYZ.Z = Format(XtoB.H, “#.00000000 “) Me.Text1.Text = Str(pXYZ.x) Me.Text2.Text = Str(pXYZ.y) Me.Text3.Text = Str(pXYZ.Z) End If End Sub 程序设计好之后就是要检验坐标转换是否成功了,我们找来了一个已知点。在 空间直角坐标系统下的坐标值: X=2558068.045186 Y=42317

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1