坐标转换与VC编程凤金成著中国地质大学(北京)学士学位毕业设计论文中国地质大学(北京)学士学位毕业设计论文坐标转换与VC编程目录第一章绪论..................................................................................................................2第一节坐标系统概述...........................................................................................2第二节VisualC++6.0概述................................................................................3第二章坐标转换原理..................................................................................................6第一节常用坐标系统...........................................................................................6第二节常用的坐标转换方法...............................................................................72.1空间大地直角坐标系与大地坐标系之间的转换...................................82.2大地坐标与高斯平面坐标系之间的转换...............................................92.2.1高斯投影正算公式.........................................................................92.2.2高斯投影反算公式.......................................................................112.3不同空间大地直角坐标系之间的转换.................................................122.4不同平面直角坐标系之间的转换..........................................................13第三章坐标转换在VC中的实现..............................................................................14第一节坐标类(CCoordinate)........................................................................14第二节矩阵类(CMatrix)...............................................................................16第四章软件使用说明................................................................................................17第一节程序界面简介.........................................................................................17第二节新建文档.................................................................................................18第三节转换坐标.................................................................................................20小结..............................................................................................................................21参考文献......................................................................................................................22语汇表..........................................................................................................................22致谢..............................................................................................................................23-1-中国地质大学(北京)学士学位毕业设计论文坐标转换与VC编程第一章绪论随着现代科技的发展,计算机的广泛应用,GPS卫星定位技术、地理信息系统(GIS)以及遥感技术(RS)的不断成熟与发展,我们的测事业也正发生着翻天覆地的变化。从传统的人工野外测量到现代高科技自动化数字成图,测绘科学经历了一次又一次的变革,然而在不同时期的测绘成果却也不尽相同。尤其在我国,由于历史的原因,我们曾更换过几次大地坐标系统,因此要利用前人的测绘成果,就得进行坐标转换,坐标转换的精度将直接影响我们对先前测绘成果的利用。在GPS卫星定位技术广泛应用的今天,由于世界各国所使用的椭球参数不同,在不同地区进行GPS测量也将涉及到不同坐标系统的转换,因而坐标转换在现代测量中已为一个值得研究的问题。第一节坐标系统概述众所周知,我们所居住的地球是一个不规则的椭球体,百余年来不少科学家为研究地球椭球而奋斗,他们根据各自收集到的资料,曾先后推算出不同的地球椭球参数值a和α。但是由于当时人们所用资料的局限性,所推算得到的结果只能表征某个国家或某个大陆的大地水准面形状,都还不能完善地接近整个地球的形状和大小,还不是总地球椭球。所以现如今绝大多数的国家还只能沿用这些古老的椭球,经过定位后作为各自的参考椭球。我国旧中国使用的是海福特椭球,解放后使用克拉索夫斯基椭球,费除了南京大地原点,使用前苏联原点,即我们常说的1954年北京坐标系;1980年又建立了国家大地坐标系,采用IAG-75的椭球参数,原点位于西安(即我们常说的全国80坐标系)。常用地球椭球参数表椭球名称推算年代长半径a(m)扁率α的倒数Krassovsky19426378245298.3IAG-7519756378140298.257IAG-8019806378137298.257WGS-7219726378135298.26WGS-8419846378137298.257223563Hayford19096378388297.0-2-中国地质大学(北京)学士学位毕业设计论文坐标转换与VC编程大地坐标系:在测量中,椭球面坐标系是我们计算工作的基础。其中我们常用的大地坐标系(图1-1-1)是以参考椭球中心为原点,用大地经度B和大地纬度L来表示大地坐标。经过定位后参考椭球的中心大都还不能与地球的质心完全重合,这就导致了使用不同椭球参数的国家和地区所测得的大地坐标之间存在一定的差异。空间直角坐标系:近几十年来,由于三维大地测量和卫星大地测量的发展,空间大地直角坐标系的使用日益广泛,它和大地坐标系一样,在军事和民用有关部门,已作为一种实用的坐标系。空间大地坐标系(图1-1-2)也是一个以参考椭球中心为原点的右手坐标系,Z轴与椭球的旋转轴重合,X轴沿大地起始子午面NOG方向,Y轴与此面垂直。平面直角坐标系:平面直角坐标(图1-1-3)是在椭球面坐标系的基础上经过正形投影转化而来的,在实际工作中应用非常广泛。从椭球面坐标系到平面直角坐标系的转换也是我们测量工作根本任务的一部分。由投影的方式不同,又存在好几类平面直角坐标系。我国主要采用高斯投影,因而大部分地图坐标是用的高斯平面直角坐标。纬度经度图1-1-1图1-1-2图1-1-3在测量工作中,要先定义椭球参数,然后才有这一系列的坐标系。通常情况下一个地区所使用的椭球参数在一定时期内是固定的。这样便于测量成果的交流。对于不同的椭球参数下所得的测量成果,则要进行坐标转换,使用相同的椭球参数,这也就是我们现在所要做的工作。一般坐标转换可分成两种情况,不同参考椭球之间的坐标转换和同一参考椭球下不同坐标系中的坐标转换,包括地图投影。第二节VisualC++6.0概述Microsoft的Visual系列开发工具,以它自己独到的特点和优势赢得了越来越多的开发者(当然了,我也是其中的一员),编程的可视化是昀容易被人们所感知的优点之一。在微机版C++程序设计环境中,微软公司的VisualC++可以说是独领风骚。微软公司于1998年推出了MicrosoftVisualStudio6.0(Microsoft可视化工作室),MicrosoftVisualC++6.0是其中的一个组件。它汇集了微软公司的包括“智能感知”在内的技术精华,不仅全面地贯彻了面向对象技术,而且在编译优化技术方面较其它同类产品具有明显的优势。它是一个彻底的程序员级开发环境,“可视化”的设计减少了不少编程的工作量。利用VisualC++6.0几乎可以完成任何设计功能,小至普通的应用系统,大至复杂的应用开发工具。-3-中国地质大学(北京)学士学位毕业设计论文坐标转换与VC编程图1-1-4VisualC++6.0是Microsoft公司在多年使用不断改进的基础上推出的,支持Win32平台应用程序(application)、服务(service)和控件(control)的开发。主要有以下特点。1.VisualC++6.0开发环境VisualC++6.0开发环境DeveloperStudio是由MicrosoftWindows环境下运行的一套集成工具所组成(图1-1-4),包括文本编辑器(TextEditor)、资源编辑器(ResourceEditor)、项目建立工具(ProjectBuildFacilities)、优化编译器(OptimizingCompiler)、增量连接器(IncrementalLinker)、源代码浏览器(SourceCodeBrowser)、集成调试器(IntegratedDebugger)等。VisualC++6.0允许用户根据自己的口味设计VisualC++6.0开发环境,用以提高操作效率。它可以让你轻而易举地改变工具栏的外观和显示状态。使用DeveloperStudio,不仅可以创建由VisualC++6.0使用的资源文件和其它文档,而且可以创建、查看和编辑与任何ActiveX部件有关的文档(ActiveX文档)。在DeveloperStudio中,可以在项目工作区(ProjectWorkspace)中组织文件(File)、项目(Project)和项目配置(ProjectConfiguration)。可以使用工作区窗口来查看的访问项目中的各种元素。项目工作区可以含有多个项目,每个项目要么是顶层项目(Top-levelProject),要么是其它项目的子项目(Subproject)。2.使用应用程