1、1不同平面直角坐标系转换软件设计与实现摘要:坐标转换问题在测量工作中经常遇到,其计算过程比较复杂。本文从平面坐标转换方法出发,利用相似变换模型和多项式拟合模型列立误差方程式,推导平差中各转换模型的设计矩阵,通过 VC 编程实现了不同坐标系统的转换,使用户能够简单、方便地实现两个不同坐标系统之间的坐标转换。 关键词:平面;坐标转换;变换模型;VC 编程 中图分类号:S611 文献标识码:A 文章编号: 0 前言 在实际工程中我们虽然可以通过 GPS 精密单点定位或者差分方法得到精度相当高的(X,Y,Z)或者(B,L,H) ,但是他们都是以椭球参考面为基准的,然而我们却无法精确确定大地水准面差距或
2、者高程异常,一般通过 GPS 等方法获得的高程方向的精度比较低,因而工程测量中还是常常以“1956 年黄海高程系”或者“1985 年国家高程基准”为高程基准,用精密水准测量的方法进行高程控制。因此在工程项目中,常常将平面位置与高程位置的控制分开,所以就会涉及到不同平面直角坐标系间相互转换的问题。 本文以二维的平面坐标为基础讨论且比较相似变换模型和多项式模2型,采用测量平差中的最小二乘法进行坐标转换,基于 VC 设计简单的平面直角坐标系转换软件,为以后工作提供方便。 1 坐标系统概述 1.1 坐标系的概念 坐标系是一种在给定维数的空间中用坐标来表示点的方法,它是测量参照系的核心元素。坐标系的类型
3、很多,有坐标轴相互正交的笛卡尔坐标系和由多个截面所组成的曲线坐标系等。在不同的坐标系中,表示坐标系的方法也有所不同。例如:在大地坐标系中,用点与若干参考面的角度和距离值来表示坐标;在三维笛卡尔坐标系中,则用原点至点的矢径在各个坐标轴上的投影长度来表示坐标。在测量应用中,仅仅依靠坐标系本身还无法真正确定点的位置,还必须将坐标系与位置基准联系起来,形成一个完整的坐标参考系,才能对点的位置加以确定。也就是说,点的坐标是在一个坐标参考系下定义的。 1.2 常用坐标系统 在我国,现常用的椭球面坐标系有:北京 54 坐标系、全国 80 坐标系、WGS-84 坐标系、2000 国家大地坐标系、地方独立坐标系
4、,常用的平面直角坐标系主要是高斯三度(或六度)带投影后的平面直角坐标系以及各地方独立坐标系(如北京城建坐标系) 。不同的坐标系用在不同的场合,各自都有不同的意义。 1.3 常用坐标系的表现形式 1)高斯平面直角坐标系 高斯投影后,以中央子午线和赤道的交点 O 作为坐标原点,以中央3子午线的投影为纵坐标 x 轴,以赤道的投影为横坐标 y 轴建立起的坐标系称为高斯平面直角坐标系。 2)大地坐标系 大地坐标系是采用大地经、纬度和大地高来描述空间位置的。某点的大地纬度是在该点所处子午面上所量测的赤道面与过该点的参考椭球面法线所夹的锐角,在赤道以北为正,在赤道以南为负,可用符号 B 表示。某点的大地经度
5、是在赤道面上所量测的从本初子午面到该点所处子午面间的夹角。可用符号 L 表示。某点的大地高度是从参考椭球面沿过该点的法线量测至该点的距离。如果参考椭球面在该点下方,则大地高为正;如果参考椭球面在该点的下方,则大地高为负。可用符号 H 表示。2 Microsoft Visual C+ 6.0 概述 Visual C+开发环境是一个基于 Windows 操作系统的可视化、面向对象的集成开发环境(IDE) ,在该环境下用户可以开发有关 C 和 C+的各种应用程序4。Microsoft 的 Visual 系列开发工具,以它自己独到的特点和优势赢得了越来越多的开发者,编程的可视化是最容易被人们所感知的优
6、点之一。 在微机版 C+程序设计环境中,微软公司的 Visual C+可以说是独领风骚。微软公司于 1998 年推出了 Microsoft Visual Studio 6.0,Microsoft Visual C+ 6.0 是其中的一个组件。它汇集了微软公司的包括“智能感知”在内的技术精华,不仅全面地贯彻了面向对象技术,而且在编译优化技术方面较其它同类产品具有明显的优势。它是一个彻4底的程序员级开发环境, “可视化”的设计减少了不少编程的工作量。利用 Visual C+ 6.0 几乎可以完成任何设计功能,小至普通的应用系统,大至复杂的应用开发工具。 Visual C+ 6.0 是 Micros
7、oft 公司在多年使用不断改进的基础上推出的,支持 Win32 平台应用程序(application) 、服务(service)和控件(control)的开发。 3 坐标转换模型比较 3.1 相似变换模型 式中向量 a,b 表示平移,是源坐标网轴逆转至目标坐标网 x 轴的转角,而 k 是尺度比因子。 3.2 多项式拟合模型 式中新坐标系中点的坐标为(x,y),旧坐标系中的坐标为(x,y),, , , ,都只是运算中需要的参数,没有实际意义。将(3-2)式的二次项去掉,只保留一次项和常数项,得到的求参模型也叫做仿射变换模型。有多余已知点的情况下,一般采用最小二乘法来解其相应的未知参数,多项式模型
8、取一次项后模型为: 53.3 两种模型的比较分析 1)相似变换模型是考虑坐标系间关系的转换模型,而多项式拟合模型是数值逼近模型。 2)两种模型所需要的公共点数有所不同,相似变换模型计算简便,多项式拟合模型计算较复杂。 3)相似变换模型只适用于小范围内、局部坐标系间的坐标转换,而多项式模型不仅适用于各局部坐标系间的转换,也适用于局部坐标系到地心坐标系的转换。 4)多项式拟合的精度略高于相似变换模型。 5)两种模型都可以应用最小二乘法。 6)两个模型进行平面坐标转换事先可以不必知道两个坐标系所在的参考椭球。 4 算法设计 4.1 相似变换模型的设计矩阵 为了计算上的简便,将公式(3-1)中的括号打
9、开,设=,=,则公式(3-1)可写为: 4.2 多项式拟合模型的设计矩阵 如果只取多项式拟合中的一次项,那么需要 6 个未知数,至少需要3 个公共点,则误差方程为: 6在相似变换模型的设计矩阵和多项式拟合模型的设计矩阵的公式中所列立的是一个公共点的设计矩阵形式,当同时求 n 个公共点时,可以利用矩阵运算一同求解,而不必利用以上方法逐个计算。 5 软件的设计与实现 5.1 参数计算 利用两个列表框,一个显示读入的公共点数据,一个显示转换后求的四个参数,修改列表框中的属性,建立类向导等。然后添加两个命令按钮,一个作为读入数据按钮,一个求解转换参数按钮。最后添加一个分组框,添加属性信息,一个简单的四
10、参数解算对话框部分需添加的控件基本完成,然后在相应的控件中输入程序,实现控件作用。多项式拟合与相似变换的对话框外观设置基本相同。添加程序代码后,编译连接没有错误,可以进行运行。代入公共点数据就可以进行参数解算。 5.2 平面坐标转换 对话框中平面坐标转换部分两种模型所要添加的控件完全一样,添加两个列表框,一个显示读入的待转换数据,一个显示转换后坐标结果。添加两个静态文本显示两个列表框的用途,然后添加四个命令按钮,一个作为读入待转换点按钮,一个计算转换坐标,一个保存结算结果,最后设置退出按钮。最后添加分组框。添加程序代码后,编译连接没有错误,可以进行运行。 6 总结 7本文在详细介绍坐标系统和
11、Microsoft Visual C+ 6.0 程序设计的基础上,基于相似变换模型和多项式拟合模型编写程序对话框实现了不同平面直角坐标系转换功能,精度较可靠。通过查阅资料和本次设计,得出以下几点结论。 1)将 VC 可视化编程技术应用于测量计算软件的开发中,不仅界面友好,而且有许多方便实用的控件可供直接使用,大大方面了程序开发的进度。 2)相似变换模型的 4 个参数具有实际意义,能反映出两套坐标系的几何位置关系,而多项式拟合模型的参数没有实际意义,多项式模型只取常数项和一次项时要求取 6 个参数,取到二次项时需要求 12 个参数,所以相似变换模型在计算上比多项式模型简单。 3)坐标转换成果的精
12、度与所选择的坐标转换模型、求转换参数公共点的个数、公共点位置的分布有一定关系。对于平面直角坐标之间的转换两种模型都用 3 个公共点时,采用相似变换模型能收到较好的效果。 4)通过所得数据相互比较以及所得数据与南方 GPS 数据处理软件转换结果的比较确定所编写的程序精度符合要求,在公共点精度较高的前提下可以在重合控制点覆盖的地理区域范围得到有效的数据。 参考文献: 1 李正航,黄劲松.GPS 测量与数据处理M.湖北:武汉大学出版社,2005. 2 张勤,李家权.GPS 测量原理及应用M.北京:科学出版社,2005. 83 田福娟.平面坐标转换软件设计J.湖北水利水电职业技术学院学报,2006,2(2). 4 Visual C+程序设计与应用教程M.北京:清华大学出版社, 2007.