坐标转换与VC编程.docx

上传人:b****6 文档编号:5101060 上传时间:2022-12-13 格式:DOCX 页数:22 大小:734.09KB
下载 相关 举报
坐标转换与VC编程.docx_第1页
第1页 / 共22页
坐标转换与VC编程.docx_第2页
第2页 / 共22页
坐标转换与VC编程.docx_第3页
第3页 / 共22页
坐标转换与VC编程.docx_第4页
第4页 / 共22页
坐标转换与VC编程.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

坐标转换与VC编程.docx

《坐标转换与VC编程.docx》由会员分享,可在线阅读,更多相关《坐标转换与VC编程.docx(22页珍藏版)》请在冰豆网上搜索。

坐标转换与VC编程.docx

坐标转换与VC编程

第一章绪论

随着现代科技的发展,计算机的广泛应用,GPS卫星定位技术、地理信息系统(GIS)以及遥感技术(RS)的不断成熟与发展,我们的测事业也正发生着翻天覆地的变化。

从传统的人工野外测量到现代高科技自动化数字成图,测绘科学经历了一次又一次的变革,然而在不同时期的测绘成果却也不尽相同。

尤其在我国,由于历史的原因,我们曾更换过几次大地坐标系统,因此要利用前人的测绘成果,就得进行坐标转换,坐标转换的精度将直接影响我们对先前测绘成果的利用。

在GPS卫星定位技术广泛应用的今天,由于世界各国所使用的椭球参数不同,在不同地区进行GPS测量也将涉及到不同坐标系统的转换,因而坐标转换在现代测量中已为一个值得研究的问题。

第一节坐标系统概述

众所周知,我们所居住的地球是一个不规则的椭球体,百余年来不少科学家为研究地球椭球而奋斗,他们根据各自收集到的资料,曾先后推算出不同的地球椭球参数值a和α。

但是由于当时人们所用资料的局限性,所推算得到的结果只能表征某个国家或某个大陆的大地水准面形状,都还不能完善地接近整个地球的形状和大小,还不是总地球椭球。

所以现如今绝大多数的国家还只能沿用这些古老的椭球,经过定位后作为各自的参考椭球。

我国旧中国使用的是海福特椭球,解放后使用克拉索夫斯基椭球,费除了南京大地原点,使用前苏联原点,即我们常说的1954年北京坐标系;1980年又建立了国家大地坐标系,采用IAG-75的椭球参数,原点位于西安(即我们常说的全国80坐标系)。

常用地球椭球参数表

椭球名称

推算年代

长半径a(m)

扁率α的倒数

Krassovsky

1942

6378245

IAG-75

1975

6378140

IAG-80

1980

6378137

WGS-72

1972

6378135

WGS-84

1984

6378137

Hayford

1909

6378388

 

大地坐标系:

在测量中,椭球面坐标系是我们计算工作的基础。

其中我们常用的大地坐标系(图1-1-1)是以参考椭球中心为原点,用大地经度B和大地纬度L来表示大地坐标。

经过定位后参考椭球的中心大都还不能与地球的质心完全重合,这就导致了使用不同椭球参数的国家和地区所测得的大地坐标之间存在一定的差异。

空间直角坐标系:

近几十年来,由于三维大地测量和卫星大地测量的发展,空间大地直角坐标系的使用日益广泛,它和大地坐标系一样,在军事和民用有关部门,已作为一种实用的坐标系。

空间大地坐标系(图1-1-2)也是一个以参考椭球中心为原点的右手坐标系,Z轴与椭球的旋转轴重合,X轴沿大地起始子午面NOG方向,Y轴与此面垂直。

平面直角坐标系:

平面直角坐标(图1-1-3)是在椭球面坐标系的基础上经过正形投影转化而来的,在实际工作中应用非常广泛。

从椭球面坐标系到平面直角坐标系的转换也是我们测量工作根本任务的一部分。

由投影的方式不同,又存在好几类平面直角坐标系。

我国主要采用高斯投影,因而大部分地图坐标是用的高斯平面直角坐标。

在测量工作中,要先定义椭球参数,然后才有这一系列的坐标系。

通常情况下一个地区所使用的椭球参数在一定时期内是固定的。

这样便于测量成果的交流。

对于不同的椭球参数下所得的测量成果,则要进行坐标转换,使用相同的椭球参数,这也就是我们现在所要做的工作。

一般坐标转换可分成两种情况,不同参考椭球之间的坐标转换和同一参考椭球下不同坐标系中的坐标转换,包括地图投影。

第二节VisualC++概述

Microsoft的Visual系列开发工具,以它自己独到的特点和优势赢得了越来越多的开发者(当然了,我也是其中的一员),编程的可视化是最容易被人们所感知的优点之一。

在微机版C++程序设计环境中,微软公司的VisualC++可以说是独领风骚。

微软公司于1998年推出了MicrosoftVisualStudio(Microsoft可视化工作室),MicrosoftVisualC++是其中的一个组件。

它汇集了微软公司的包括“智能感知”在内的技术精华,不仅全面地贯彻了面向对象技术,而且在编译优化技术方面较其它同类产品具有明显的优势。

它是一个彻底的程序员级开发环境,“可视化”的设计减少了不少编程的工作量。

利用VisualC++几乎可以完成任何设计功能,小至普通的应用系统,大至复杂的应用开发工具。

VisualC++是Microsoft公司在多年使用不断改进的基础上推出的,支持Win32平台应用程序(application)、服务(service)和控件(control)的开发。

主要有以下特点。

1.VisualC++开发环境

VisualC++开发环境DeveloperStudio是由MicrosoftWindows环境下运行的一套集成工具所组成(图1-1-4),包括文本编辑器(TextEditor)、资源编辑器(ResourceEditor)、项目建立工具(ProjectBuildFacilities)、优化编译器(OptimizingCompiler)、增量连接器(IncrementalLinker)、源代码浏览器(SourceCodeBrowser)、集成调试器(IntegratedDebugger)等。

VisualC++允许用户根据自己的口味设计VisualC++开发环境,用以提高操作效率。

它可以让你轻而易举地改变工具栏的外观和显示状态。

使用DeveloperStudio,不仅可以创建由VisualC++使用的资源文件和其它文档,而且可以创建、查看和编辑与任何ActiveX部件有关的文档(ActiveX文档)。

在DeveloperStudio中,可以在项目工作区(ProjectWorkspace)中组织文件(File)、项目(Project)和项目配置(ProjectConfiguration)。

可以使用工作区窗口来查看的访问项目中的各种元素。

项目工作区可以含有多个项目,每个项目要么是顶层项目(Top-levelProject),要么是其它项目的子项目(Subproject)。

2.使用应用程序向导(AppWizard)简化应用程序的开发

随着软件产业的快速发展,软件开发越来越适应市场竞争的需要。

由于用户对软件开发周期的要求越来越短,在软件工程领域出现了快速原型设计技术,使用这种技术后,开发人员可以在很短的时间里设计出一个粗略的应用程序框架,可以作为向客户演示并进一步了解客户需求的手段。

VisualC++将快速原型技术和智能感知技术结合起来,提供了大量的应用程序设计“Wizard(向导)”,其每个向导可为一种特殊类型的程序建立工程,它在创建新工程时提供应用程序的框架,我们不必从头做起,就能很快设计出程序原型。

它像其它动态链接库一样,在DeveloperStudio环境下运行,并且要求读者提供新程序的特征,然后生成框架程序的源文件,其中这些新特征的大部分通用代码都已经替读者写好了。

VisualC++为专业工程,如ActiveX控件和DeveloperStudio附加应程序,提供了各种各样的向导。

甚至有向导来帮助读者建立自己的定制向导。

创建应用程序的基本框架后,可以使用ClassWizard来创建新类(Class),定义消息处理函数(MessageHandler),覆盖虚拟函数(VirtualFunction),从对话框(DialogBox)。

表单视图(FormView)或者记录视图(RecordView)的控件中获取数据并验证数据的合法性,添加属性(Property)、事件(Event)和方法(Method)到自动化对象(AutomationObject)中。

此外,还可以使用WizardBar来定义消息处理函数、覆盖虚拟函数并浏览实现文件(.cpp)。

3.最快的集成数据库访问

VisualC++包含了开发数据库应用程序的全方位支持,允许用户建立强有力的数据库应用程序:

●可以使用ODBC类和高性能的32位ODBC驱动程序来访问各种数据库管理系统。

●可以使用DAO(数据访问对象)类通过编程语言来访问和操纵数据库中的数据并管理数据库。

数据库对象与结构。

4.强有力的Internet支持

随着网络的发展,计算机和网络必会合二为一,网络应用程序的开发已变得非常重要。

VisualC++对Internet应用程序的开发提供了有强有力的支持:

●Win32InternetAPI(WinInet)使用Internet成为应用程序的一部分并简化了对Internet服务(FTP,HTTP和Gopher)的访问。

●ActiveX文档可以显示在整个Web浏览器(如InternetExplorer)或OLE容器(如MicrosoftOfficeBinder)的整个客户窗口中。

●ActiveX控件可以用在Internet和桌面应用程序中。

●AsynchronousMonikers使应用程序可以异步下载文件和控件属性。

●可以使用ChttpServer,ChttpFilter,ChttpServerContext,ChttpFilterContext和ChttpStream类来创建动态链接库以便添加功能到Internet服务器和Web页中。

MicrosoftVisualC++是一个功能强大、灵活性好并可完全可扩展的Windows开发系统。

如今作为一种通用且功能强大的编程语言,VisualC++的地位不可动摇。

它提供的完全集成性以及可视化用户界面驱动的特性,不仅适用于传统的C/C++开发过程,更充分优化了对面向对象技术的支持。

一方面,它完美地与Windows平台进行结合,从而保证了程序具有强大的功能;另一方面,其无可比拟的与Windows同步更新的优势对程序员也具有极大的吸引力。

第二章坐标转换原理

在大地测量中,坐标转换是一项必不可少的工作,尤其是在GPS广泛应用的今天,坐标转换应用更是频繁。

坐标转换大致可分为两类:

不同椭球之间的坐标转换;同一椭球下不同坐标系之间的坐标转换。

不同椭球之间的坐标转换相对来说比较复杂一点,通常都会涉及到不同椭球之间转换参数的计算问题。

相同椭球下坐标转换相对简单,一般都有固定的公式,不需要自己计算转换参数。

坐标转换一般可遵循以下步骤:

如果是在同一椭球下,则可直接转换;不同椭球之间的坐标转换一般是先换成各自的大地空间直角坐标,用七参数转换,也可都转换成平面坐标,然后用四参数或六参数转换,这种转换方法比较适用于有一个是平面坐标的情况。

第一节常用坐标系统

在我国,现常用的椭球面坐标系有:

北京54坐标系;全国80坐标系;WGS-84坐标系;常用的平面直角坐标系主要是高斯三度(或六度)带投影后的平面直角坐标系以及各地方独立坐标系(如北京城建坐标系)。

不同的坐标系用在不同的场合,各自都有不同的意义,现就这几种坐标系作一初略的介绍。

5.北京54坐标系

20世纪50年代,在我国天文大地网建立初期,鉴于当时的历史条件,采用了克拉索夫斯基椭球元素(a=6378245m,α=1/),并与前苏联1942年普尔科沃坐标系进行联测,通过计算建立了我国大地坐标系,命名为1954年北京坐标系,简称:

北京54坐标系。

北京54坐标系和前苏联1942年普尔科沃坐标系有一定的关系(椭球参数和大地原点一致),但又不完全是前苏联1942年普尔科沃坐标系。

如大地点高程是以1956年青岛验潮站求出的黄海平均海水面为基准,高程异常是以前苏联1955年大地水准面重新平差结果为起算值,按我国天文水准路线推算出来的。

几十年来,我国按北京54坐标系完成了大量的测绘工作,在该坐标系上,实施了天文大地网局部平差,通过高斯-克吕格投影,得到点的平面坐标,测制了各种比例尺地形图。

这一坐标系在国家经济建设和国防建设的各个领域中发挥了巨大的作用。

该坐标系在今后相当长一个时期内,在一些部门还将继续使用。

6.全国80坐标系

为了进行全国天文大地网整体平差,彩了新的椭球元素和进行了新的定位和定向,1978年以后,建立了1980年国家大地坐标系,简称:

全国80坐标系。

全国80坐标系是参心坐标系。

椭球短轴Z轴平行于由地球地心指向地极原点(JYD)的方向;大地起始子午面平行于格林尼治平均天文台子午面,X轴在大地起始子午面内与Z轴垂直指向经度零方向;Y轴与Z、X轴成右手坐标系。

椭球参数彩IAG75推荐值(a=6378140m,α=1/)。

椭球定位时按我国范围内高程异常值平方和最小为原则求解参数。

高程系统基准是1956年青岛验潮站求出的黄海平均海水面。

大地原点设在我国中部陕西省泾阳县永乐镇。

全国80坐标系建立后,实施了全国天文大地网整体平差。

提供了属于全国80坐标系的大地点成果。

这种成果与原大地点局部平差成果二者属于两个不同的参心坐标系。

这给实际的使用带来一定问题。

实用部门和单位大量成果是北京54坐标系的。

因而也有的部门和单位将全国80坐标系的空间直角坐标经三个平移参数平移变换至克氏椭球中心,椭球参数保持与北京54坐标系相同而建立所谓的新北京54坐标系,这样新北京54坐标系与原北京54坐标系坐标接近,但其精度和全国80坐标系完全一样。

7.WGS-84坐标系

随着GPS测量的广泛应用,WGS-84坐标系也逐渐被人们所认识。

因为GPS卫星星历是以WGS-84坐标系为根据而建立的,从而GPS单点定位的坐标以及相对定位中解算的基线向量属于WGS-84大地坐标系。

WGS-84坐标系的原点位于地球质心,Z轴指向BIH定义的协议地球极(CTP)方向,X轴指向BIH的零子午面和CTP赤道的交点,Y轴与Z轴构成右手坐标系。

对应于WGS-84坐标系有WGS-84椭球,其a=6378137m,α=1/。

WGS-84大地水准面高N等于由GPS定位测定的点的大地高H减去该点的正高H正。

N值可以利用球谐函数展开式和一套n=m=180阶项的WGS-84地球重力场模型系数计算得出;也中可用特殊的数学立法精确计算局部大地水准面高N。

一旦大地水准面高N确定之后,便可利用H正=H–N计算各GPS点的正高H正。

8.高斯投影平面直角坐标系

高斯投影又叫高斯-克吕格投影,它是一种横轴椭圆柱正形投影。

在我国,几乎所有的测绘成果都是采用的高斯-克吕格投影,具体又有三度带和六度带高斯投影,它们的投影原理相同,只是投影带的宽度不同而已。

高斯投影后的x轴与中央子午线重合,中央子午线与赤道的交点为坐标原点。

后为了计算方便,将x轴向西移动500公里,以使y值为正值。

由于我国处于北半球,x值就不存在这一问题。

9.地方独立坐标系

我国许多城市、矿区基于实用、方便和科学的目的,将地方独立测量控制网建立在当地的平均海拔高程面上,并以当地子午线作为中央子午线进行高斯投影求得平面坐标。

这些网都有自己的原点,自己的定向,也就是说这些控制网都是以地方独立坐标系为参考的。

而地方独立坐标系则隐含着一个与当地平均海拔高程对应的参考椭球。

该椭球的中心、轴向和扁率与国家参考椭球相同,只是其长半径则有一改正量。

我们将该参考椭球称为“地方参考椭球”。

第二节常用的坐标转换方法

坐标系统之间的转换包括不同参心大地坐标系统之间的转换、参心大地坐标系与地心大地坐标系之间的转换以及大地坐标与高斯平面坐标系之间的转换等。

不同参心大地坐标系统所使用的椭球参数,属于不同椭球体之间的坐标转换,大多数情况下都需要寻找坐标转换参数。

参心大地坐标系与地心大地坐标系之间、大地坐标与高斯平面坐标系之间的转换一般情况都是在同一椭球体中进行。

下面我们具体讨论不同坐标系之间的坐标转换问题。

空间大地直角坐标系与大地坐标系之间的转换

在上一章中我们分别对空间大地直角坐标系和大地坐标系作了简要介绍。

下面我们将讨论它们之间的转换关系。

如图2-2-1所示,地面或空间一点P沿椭球法线方向投影在椭球面上的点为P0,它们的位置矢量分别用

表示,P点的大地高为H。

设法线的单位矢量为

,则P点的位置是两个矢量之和,即

(2-2-1)

位置矢量

的表达式,通过图2-2-1中的子午面NOA直角坐标系O-xy,并顾及

其中:

(2-2-2)

可写为:

(2-2-3)

上式中,

,由图2-2-1知单位法线矢量:

(2-2-4)

将以上的(2-2-3)及(2-2-4)两式代入(2-2-1)式中,则得到

(2-2-5)

上式展开可得由B,L,H计算X,Y,Z的公式。

反算式可由(2-2-5)式得出,结果如下:

(2-2-6)

按上式反算是,大地经度L可由X,Y直接算出;大地纬度B的算式右端分子部分的小项Ne2sinB仍然是B的函数,故必须采用逐次趋近的方法解算B。

求得B,L后,按(2-2-6)之第三式计算大地高H。

大地坐标与高斯平面坐标系之间的转换

高斯投影是一种横轴椭圆柱正形投影。

如图2-2-2所示,设想有一个椭圆柱面横套在地球椭球外面,并与某一子午线相切(此子午线称为中央子午线或轴子午线),椭圆柱的中心轴CC΄通过椭球中心而与地轴垂直。

高斯投影满足下面两个条件:

1.它是正形投影;

2.中央子午线投影后应为x轴(图2-2-2(b)),且长度保持不变。

将中央子午线东西各一定经差(一般为6度或3度)范围内的地区投影到椭圆柱面上,再将此柱面沿某一棱线展开,便构成了高斯平面直角坐标系,如图2-2-2(b)所示。

高斯投影正算公式

设椭球面上有一点P(如图2-2-3(a)),其大地经纬度为L,B;相应的等量纬度为q;点P的子午线民中央子午线的经度差为l=L–L0。

点P投影到高斯平面上为点p(见图2-2-3(b)),其直角坐标为x,y。

由于高斯投影是正形投影,故x,y与q,l必须满足正形投影的基本公式,即

(2-2-7)

在椭球面上过P点作一平行圈,与中央子午线相交于点H处。

设赤道到点H的子午弧长为X(见图2-2-3(a))。

点H在平面上的投影为点h,它的纵坐标为xy=0(见图2-2-3(b))。

由于高斯投影规定中央子午投影为x轴,且长度保持不变,此即l=0,则y=0;且

(2-2-8)

高斯投影中,规定l为一小量,故(2-2-7)式可按泰勒级数在点H上展开,得

(2-2-9)

,故上式可改写为

(2-2-10)

按子午弧长微分

,又由

,于是

(2-2-11)

其次求

(2-2-11)

继续求各阶导数,得

(2-2-11)

(2-2-10)式展开,将(2-2-11)诸式各阶导数代入,经过虚实两部分分开后,得

(2-2-12)

上式就是可直接用电子计算机计算的高斯投影正式公式,式中,

,L0为投影带中央子午线的经度。

高斯投影反算公式

已知x,y求B,L,这是高斯投影的反算问题。

因投影是正形的,故q,l与x,y必须满足(2-2-7)的反函数式,即

(2-2-13)

式中y为小量(相对于半径R而言),故上式可在点p的底点f(图2-2-4)处按泰勒级数展开,f点的纵坐标为x,于是有

(2-2-14)

根据高斯投影条件2:

中央子午线投影后应为x轴,且长度保持不变,故有y=0,则l=0,即

,且

为底点f的子午线弧长),故

于是(2-2-14)式改为

(2-2-15)

再根据

,可进一步导出其他各阶导数。

将各阶导数的结果代入(2-2-15)式,并把虚实两部分分开,可得

(2-2-16)

(2-2-17)

实际应用时,把

换以

并令

,整理后可得

(2-2-18)

上式就是由x,y计算B,L的反算公式。

式中,Bf是底点f的大地纬度,它是根据x值(f点的子午线弧长)由子午线弧长公式

反算求得,

不同空间大地直角坐标系之间的转换

各国采用的参考椭球面上的大地坐标系,转换为空间大地直角坐标系后,是彼此不同的所谓参心大地直角坐标系,坐标轴之间一般既不重合,又不平行。

这些参心大地直角坐标系与全球统一的以地球质心为原点的地心大地直角坐标系也不相一致。

因此常存在两个不同空间大地直角坐标系之间的转换问题。

进行两个不同空间直角坐标系统之间的坐标转换,需要求出坐标系统之间的转换参数。

转换参数一般是利用重合点的两套坐标值通过一定的数学模型进行计算。

当重合点数为三个以上时,可以采用布尔萨七参数法进行转换。

设X0和X分别为地面网点和GPS网点的参心和地心坐标向量。

由布尔萨模型可知:

(2-2-19)

式中,

是平移参数矩阵,k是尺度变化参数。

为旋转参数矩阵,通常将

称为坐标系间的转换参数。

为了简化计算,当

为微小量时,忽略其间的互乘项,且

,则上述模型变为:

(2-2-19)

上式可简写为:

(2-2-20)

通过上述模型,利用重合点的两套坐标值

采取平差的方法可以求得转换参数。

求得转换参数后,再利用上述模型进行各点的坐标转换(包括重合点和非重合点的坐标转换)。

对于重合点来说,转换后的坐标值与已知值有一差值。

其差值的大小反映转换后的坐标精度。

其精度与被转换的坐标精度有关,也与转换参数的精度有关。

不同平面直角坐标系之间的转换

不同平面坐标系的直接转换一般采用简单变换方法(赫尔默特法),它只需四个参数,故又可叫做四参数法。

其实质是使源坐标系的平移,旋转和进行尺度比因子改正,将源坐标网配合到目标坐标网上。

因源坐标网形状保持不变,故此法又叫平面相似变换法。

变换方程为;

(2-2-21)

式中向量a,b表示平移,α是源坐标网x’轴逆转至目标坐标网x轴的转角,而k是尺度比因子。

变换参数a,b,α,k可根据两坐标网公共点上的已知坐标x,y和x’,y’,由(2-2-21)式求解确定。

为此必须有两个以上的公共点,列出四个方程式,从而解算出这四个参数值。

当具有两个以上的公共点时,就要应用最小二乘平差方法,求解最或是参数值a,b,α,k。

按最小二乘法求解时,须先使(2-2-21)线性化,为此导入新参数c,d:

(2-2-22)

于是(2-2-21)式便转化为

(2-2-23)

利用较多公共点反求转换系数a,b,c,d的简单变换法,有的书上又叫利萨夫法,其特点是:

不变更源坐标网的形状,只给平移、旋转和尺度比因子的变动使源坐标网最适合地配合到目标坐标网中去。

但是这种方法所得的残差往往比预计的要大,因此只能认为是一个较近似的坐标转换方法。

第三章坐标转换在VC中的实现

C++语言是面向对象的程序设计语言,它把数据和在数据之上的操作封装在一起的类、对象和方法的机制并通过派生,继承、重载和多态性等特征,实现了软件的重用和程序自动生成,使得软件的构造和维护变得更加有效和容易。

在此坐标转换程序的设计过程中,使用了VisualC++的MFCAppWizard创建了一个基于MFC类库的WindowsMultipledocuments(多文档)应用程序;自定义了CCoordinate类封装坐标转换的实现,为了便于存储,此类从CObject类继承;为了计算参数,定义了CMatrix类实现矩阵运算的封装。

下面就程序中几个主要的自定义类进行讨论。

第一节坐标类(CCoordinate)

坐标类(CCoordinate)封装了坐标的转换,可以实现大地坐标与空间大地直角坐标之间的转换、不同空间大地直角坐

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

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1