基于ArcGIS Engine的GPS坐标转换
2012-06-01傅民仓
邹 博,傅民仓,王 伟
(1.武警工程大学研究生管理大队,陕西西安 710086,2.武警工程大学通信工程系,陕西西安 710086;3.陕西省公安厅警卫局,陕西西安 710065)
随着信息化进程的推进和计算机及网络技术的普及,GPS设备的定位精度已能满足大多数领域的需求,特别是GPS实时动态定位(RTK)技术的发展,使得GPS与GIS技术相结合的技术在政府管理与决策、城市规划与土地管理、城市公共设施管理、防灾减灾、产品交易、智能交通和导航以及公共服务等领域发挥越来越重要的作用。
一般GPS接收到的定位信息是基于WGS-84坐标系统的,而我国所采用的电子地图基本是基于北京-54坐标系。GPS接收到的数据不能直接应用于电子地图上,两者会有0~120 m的系统偏差,无法达到精确定位的需求。所以要把WGS-84坐标系下的GPS定位信息转换到北京-54坐标系下,这样才能通过电子地图实时准确地显示GPS定位信息。为将GPS坐标转换到电子地图所采用的北京-54坐标系中,首先需要在已知控制点上进行GPS观测,得到其在WGS-84坐标系中的坐标,然后利用某种坐标转换模型求坐标转换参数,这样就可以利用所求的转换参数对其它GPS定位点进行坐标转换[1]。
文中采用VisuaI C#开发语言和Visual Studio 2008开发环境,结合ESRI公司ArcGIS Engine 10嵌入式开发组件提供的相关接口,以模块化思想设计开发能够灵活移植、具备良好扩展性和稳定性的GPS定位显示系统。应用结果表明,该系统具有较好的适应性与快捷性,且能满足精度的要求。
1 坐标系与投影
1.1 坐标系
WGS-84坐标系是目前GPS所采用的坐标系统,GPS所发布的星历参数就是基于此坐标系统。WGS-84坐标系是美国国防部研制确定的大地坐标系,是一种协议地球坐标系。WGS-84坐标系的定义如图1所示:原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z,X轴构成右手坐标系[1]。这是一个国际协议地球参考系统(ITRS),是目前国际上统一采用的大地坐标系。
图1 WGS-84坐标系
1954年北京坐标系是我国目前广泛采用的大地测量坐标系。该坐标系源于原苏联采用过的1942年普尔科夫坐标系,但又不完全与其相同。如大地点高程是以1956年青岛验潮站求出的黄海平均海面为基准;高程异常是以前苏联1955年大地水准面重新平差结果为起算值,按我国天文水准路线推算出来的。我国地形图上的平面坐标位置主要以这个数据为基准推算[2]。WGS-84坐标系和北京-54坐标系的椭球参数如表1所示。
表1 WGS-84坐标系和北京-54坐标系的椭球参数
1.2 坐标投影
我国大中比例尺地图均采用高斯-克吕格投影,该投影规定中央经线为X轴;赤道为Y轴;中央经线与赤道交点为坐标原点;X值在北半球为正;南半球为负;Y值在中央经线以东为正;中央经线以西为负。由于我国疆域均在北半球,x值均为正值,为了避免y值出现负值,规定各投影带的坐标纵轴均西移500 km,中央经线上原横坐标值由0变为500 km[3]。其通常是按6°和3°分带投影,1∶2.5 ~1∶50 万比例尺地形图采用经差6°分带,1∶1万比例尺的地形图采用经差3°分带。具体分带法是:6°分带从本初子午线开始,按经差6°为一个投影带自西向东划分,全球共分60个投影带;3°投影带是从东经1.5°开始,按经差3°为一个投影带自西向东划分,全球共分120个投影带。我国的经度范围西起73°东至135°,可分成6°带11个,各带中央经线依次为 75°、81°、87°、…、123°、129°、135°,或3°带22 个。
2 七参数坐标转换算法
WGS-84坐标是指经纬度坐标的表示方法,北京-54坐标是指经过高斯投影的平面直角坐标的表示方法。WGS-84与北京-54是两种不同的大地基准面,不同的参考椭球体。因而两种坐标系下,同一个点的坐标是不同的。当要把GPS接收到的点(WGS-84坐标系统)叠加到北京-54坐标系统的底图上,就会发现两者不能准确重合GPS点,即“与实际地点发生了偏移”。这就要求把这些GPS点从WGS-84的坐标系统转换成北京-54的坐标系统。
在GPS测量中应用较多,且严格、精密的转换方法,为经典的三维赫尔墨特转换方法[4]。地方局部坐标系的原点相对于WGS-84系统的原点的偏差(DX,DY,DZ),称为地方局部坐标系对于WGS-84地心坐标系的3个平移参数。由于地方局部坐标系的3个坐标轴不可能严格与WGS-84地心坐标系的对应轴平行,需要分别旋转一个微小的角度才能达到平行的要求,所以产生了3 个定向参数(εx,εy,εz)。最后,考虑到两个椭球的大小彼此不一样,存在一个地方坐标系相对于WGS-84地心坐标系统的尺度因子。根据以上思路建立起来的坐标转换模型,因为含有7个参数,所以通常被称为七参数法。其转换流程图如图2所示。
图2 七参数坐标转换流程
在WGS-84坐标与北京-54坐标的转换过程中,首先要求出坐标转换参数。鉴于我国使用不同的坐标基准,各地的重力值又有很大差异,所以很难确定一套适合全国且精度较好的转换参数。
通常求解七参数的做法是:在工作区内找3个以上的已知点,利用已知点的北京-54坐标和所测WGS-84坐标,通过一定的数学模型,求解七参数。若多选几个已知点,通过平差的方法可以获得较好的精度[5]。在ArcGIS Engine中提供了七参数转换法。
其中,m为尺度比参数;εx,εy,εz为旋转参数;ΔX0,ΔY0,ΔZ0为平移参数。
对该公式进行变换
解算这7个参数,至少要用到3个已知点,采用间接平差模型进行解算
其中,V为残差矩阵;X为未知七参数;A为系数矩阵;L为闭合差。
在得到7个未知参数后,可得到完整的坐标转换计算过程:(1)WGS-84空间大地坐标(B84,L84)到WGS -84 空间直角坐标(X84,Y84,Z84)的转换。(2)坐标基准的转换,WGS-84空间直角坐标(X84,Y84,Z84)通过七参数转换为北京-54空间直角坐标(X54,Y54,Z54)。(3)北京 -54 空间直角坐标(X54,Y54,Z54)到北京-54空间大地坐标(B54,L54,H54)的转换。(4)北京-54空间大地坐标(B54,L54)经过高斯投影正算公式转换为平面直角坐标(X54,Y54)
高斯平面坐标转换完成后,还要判断其所处在3°或6°带的第几度带上。得到带号,将带号乘以1 000 000再加上500 000后,结果加到Y坐标上去,最终得到高斯平面坐标。
3 基于ArcGIS Engine的GPS坐标转换
3.1 坐标转换
通过ArcGIS Engine中的IGeometry.Project方法即可进行投影。该方法将一个几何要素投影到新的空间参考内,实现了最基本的坐标转换功能。这里选择的坐标平面为esriSRProjCS_Beijing1954GK_23N。该坐标平面仅把北京附近的坐标投影在平面上。由于投影面积变小,所以投影经度提高。但有些经纬度不能转换。实际数据处理过程中,比较明确数据转换前后空间参考信息情况下一般用此方法作坐标转换,不同投影带之间的坐标转换就是一个典型。如图3所示为Point对象从一个空间参考到另一个空间参考的坐标转换流程。
图3 坐标转换流程图
3.2 系统实现
系统采用Visual C#开发语言和Visual Studio 2008开发环境,结合ESRI公司ArcGIS Engine 10嵌入式开发组件提供的相关接口,做出地图显示部分。先导入经过校正的影像图,再通过坐标转换程序将WGS-84坐标转换为北京-54坐标,然后将转换好的坐标导入到显示系统之中,生成ArcGIS Engine的shp格式文件并添加到地图上,系统提供地图浏览、查询、缩放等简单功能。图4为西安市某点的WGS-84空间直角坐标到北京-54空间直角坐标的坐标转换窗体。
图5所示为7参数的计算窗体。其中,控制点的源坐标为WGS-84坐标系下的空间直角坐标,该坐标值是Google earth中获得的经纬度坐标通过坐标投影
转换得来的。目标坐标为与源坐标对应的北京-54坐标系下的空间大地坐标,可以从电子地图中查找到其经纬度值,再经过坐标投影得到。通过设置具体的控制点坐标,计算出坐标转换过程中的7个参数。
4 结束语
在使用AE作GIS开发的时通常需要作经纬度和平面坐标的相互转换。由于经纬度是球面坐标,而平面坐标是X-Y的笛卡尔坐标系统,因此存在转换问题。文中介绍了WGS-84坐标系和北京-54坐标系之间的坐标转换过程。采用ESRI公司ArcGIS Engine 10嵌入式开发组件设计开发GPS定位显示系统。通过IGeometry接口的Project方法实现了坐标转换功能。在实际应用中,该系统能够较好地满足GPS定位中坐标转换精度的需求。
[1]徐仕琪,张晓帆,周可法,等.关于利用七参数法进行WGS-84和BJ-54坐标转换问题的探讨[J].测绘与空间地理信息,2007,30(5):33 -38.
[2]谢宁.GPS坐标转换方法的精度对比分析[J].硅谷,2011(4):30-31.
[3]李平,卢立.ArcGIS中几种坐标系转换方法的应用研究[J].城市勘测,2012(1):87 -90.
[4]程连柱.几种常用的GPS坐标转换方法[J].光盘技术,2008(4):52-53.
[5]吴自金,颜旭贤.实时动态(RTK)测量中坐标转换参数计算的几种方法[J].城市建设理论研究,2011(25):36-37.