毕业设计(论文)基于VB的测量坐标系统的转换_第1页
毕业设计(论文)基于VB的测量坐标系统的转换_第2页
毕业设计(论文)基于VB的测量坐标系统的转换_第3页
毕业设计(论文)基于VB的测量坐标系统的转换_第4页
毕业设计(论文)基于VB的测量坐标系统的转换_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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、毕业论文(设计)评审小组意见: 终评成绩: 组长签章: 年 月 日 备注 目录目录 目录目录.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、老而富有生命力的学科,其应用范围很广,在国民经济和 国防建设中发挥着十分重要的作用。随着现代科技的发展,测量学也得到了迅 猛的发展。特别是计算机科学技术、航空航天科学技术、激光技术、遥感技术、 图像处理技术及模式识别等的发展,对测绘科学的发展产生了巨大的推动作用。 坐标系统是测量非常重要的,测量坐标系统的种类繁多。正是因为坐标系 统的繁多,对测量工作造成了很大的影响。本文主要论述测绘中常用的坐标系 统;坐标系统转换的原理以及基于 vb 对坐标系统转换的实现步骤等。 关键字:坐标系统;北京 1954-坐标系统;西安 1980 坐标系统;世界大地 坐标系 wgs-1984;转换;vb 第一章第一章

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

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

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

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

9、点的位置由 坐标(x,y,z)来描述。 2天球球面坐标系的定义 地球质心 o 为坐标原点,春分点轴与天轴所在平面为天球经度(赤经)测 量基准基准子午面,赤道为天球纬度测量基准而建立球面坐标。空间点的 位置在天球坐标系下的表述为(r,) 。 天球空间直角坐标系与天球球面坐标系的关系可用图 2-1 表示: 图 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 与地球自转轴重合。空间点位置在该坐标系中表述为(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 平面 垂直构成右手系。 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 轴构成右手 坐标系。它是一个地固坐标系。 wgs-84

15、椭球及其有关常数: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 terres

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

17、ternational de iheure) 1984.0 结果; 3)尺度是广义相对论意义下,局部地球框架的尺度; 4)时变遵循地壳板块运动相对于地球整体无旋转,即地壳不受剩余地球自 转的影响。 itrf 每年通过 iers 技术文件向世界各国有关机构公布 itrfyy。年序 yy 指 2 20 5 j c 明了 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、 定向不明确。椭球短半轴的指向既不是国际是普遍采用的国际协议 (原点)ci

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

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

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

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

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

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

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

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

28、的功能,也提供了网格拟合的功能。另外,还有高程拟合的问题,大地水准 面模型在国内用户中很少会用到,但在国际上已经是标准之一。 3.13.1 大地坐标系统与空间直角坐标系统的转换原理大地坐标系统与空间直角坐标系统的转换原理 设地面点 p 的坐标为 b、l、h,空间直角坐标为 x、y、z,坐标转换关系为: (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 为第一偏心率。 由空间直角坐标转换为大地坐标通常采用下式: (3-4) 2 sin ar

29、ctan 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 xyz (3-6) 式中 为三个坐标轴的旋转角度参数; dk 为尺度比变换参数。 上式适用于任意两个空间直角坐标系统间的相互转换。若把该式的认为 ()txyz 是地面参心坐标系,而是 gps 测量用的 wgs-84 坐标系,则它便是将 ()ctsxyz gps 观测坐标值向地面参心坐标系转换的公式,若将地面参心坐标系转换为地 心坐标系,只需将转换参数的符号改变即可。 第四章第四章 基于基于 vb 的

31、坐标转换的坐标转换 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)事件驱动 在 windows 环境下,程序是以事件驱动方式运行的,每个对象都能响 应多个不同的事件,每个事件都能驱动一段代码事件过程,该代码决定了 对象的功能。通常称这种机制为事件驱动。事件可由用户的操作触发,也可以 由系统或应用程序触发。例如,单击一个命令按钮,就触发了按钮的 click(单 击)事件,该事件中的代码就会被执行。若用户未进行任何操作(未触发事件), 则程序就处于等待状态。整个应用程序就是由彼此独立的事件过程构成。 (3)软件的集成式开发 vb 为编程

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

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

36、据通信。通过动态链接库技术,在 vb 程序中可方便地调用 用 c 语言或汇编语言编写的函数,也可调用 windows 的应用程序接口(api)函 数。 (lo)联机帮助功能 在 vb 中,利用帮助菜单和 f1 功能键,用户可随时方便地得到所需要 的帮助信息。vb 帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获 取大量的示例代码,为用户的学习和使用提供方便。 4.34.3 利用利用 vbvb 实现空间直角坐标系统的相互转换实现空间直角坐标系统的相互转换 基于 vb 程序设计的前提是要有每个坐标系的各项参数和转换公式,通过第三章 的讲解,我们已经大概掌握了。 首先,打开 vb6.0 ,进入

37、 vb6.0 的主界面,选择”标准 exe” (如图 4-1) 。 图 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 在整个程序的设计过程中经常会用到关于角度的转换,所以我们定义了角 度转换的语句: p

38、ublic 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(dms as double) as double 度分秒化度 小数 dim d a

39、s 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(int(tdms) - 4) dms_angular = d + m / 60

40、 + 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 function 计算计算卯酉圈半径 n 如下: public function

41、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 function 在此,最重要的就是坐标转换的公式了,代码如下: 空间大地坐标系转换空间直角

42、坐标系(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) btox.y = (n + rblh.h) * cos(rblh.b) * sin(

43、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 dim tb as double, th as double, lb as double, lh as double e2 = gete2(a, b) if ixyz.x = 0

44、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) th = sqr(ixyz.x 2 + ixyz.y 2) / cos(tb) - n l

45、b = 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 根据上述的设计语句,我们可以通过调用函数的方法实现坐标转换的操作,代 码如下: public btox as new xyz public xtob as n

46、ew 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) pblh.h = val(me.text3.text) call blh_xyz(pblh,

47、 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.text) call xyz_blh(btox, a, b) dim w as double

48、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

49、(pxyz.x) me.text2.text = str(pxyz.y) me.text3.text = str(pxyz.z) end if end sub 程序设计好之后就是要检验坐标转换是否成功了,我们找来了一个已知点。在 空间直角坐标系统下的坐标值: x=2558068.045186 y=423173.403201 z=200 在空间大地坐标系统的坐标值为: b=000:00.26961279n l=009:23.59186463e h=-3785303.049735 在文本框输入已知点的坐标,检测该点在另外一个坐标系的坐标是否正确: 首先从空间直角坐标系统转换到空间大地坐标系统,结果如下(图 4-3): 图 4-3 基本上满足该点在空间大地坐标系统中的坐标值。 第五章第五章 结论结论 工程施工过程中,常常会遇到不同坐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论