Mapinfo数据的坐标转换方法研究
2014-06-10李晓雷于涛
李晓雷 于涛
摘 要:本文根据三种方式深入探讨了带属性的MapInfo数据的坐标转换方法:一种通过VC和MapX编程调入“.tab”文件,实现WINDOWS窗口界面化的输入和显示方式,通过输入七参数或四参数,快速实现了坐标系之间的一系列转换;一种通过AutoCAD Map 3D软件导入和导出“.tab”文件,利用平移、旋转、缩放命令实现四参数转换;一种在.prj文件中定义坐标系,通过改变投影来进行转换。这三种方式最终都以WGS-84坐标转换为BJ54坐标为例子进行了验证,取得良好结果。
关键词:MapInfo数据 坐标转换 七参数 四参数 MapX AutoCAD Map 3D
中图分类号:TP316 文献标识码:A 文章编号:1674-098X(2014)03(a)-0026-04
在MapInfo的.prj文件中已经定义了300多种坐标系,但是其中并没有我国现有的常用坐标系,更没有我国地方独立坐标系的定义[1-2]。
MapInfo自20世纪90年代开始进入我国后,在统计、测绘、电信、地质、水利、城市规划、油田勘探、林业、军事、公安、工商等部门已得到广泛的应用,并收到了良好的应用效果。随着MapInfo软件在我国的深入利用,在该软件中会经常涉及到我国常用坐标系(北京54和西安80)和地方独立坐标系,这就需要我们对其进行定义和坐标转换。
针对阜新市国土资源管理工作现状,包括矿权管理、地质环境、监察、地籍、土地征用及土地整理等工作都是建立在测绘为数据基础上的。在第二次全国土地调查成果实施前后,许多部门的基础数据和成果要求的坐标系并不一致,其中有北京54坐标系、西安80坐标系、阜新城市坐标系,还有许多因工作需要形成的自由坐标系。多种坐标系统的存在给国土部门工作带来不便,导致各部门之间的测绘图件成果无法整合通用,数据转换导致成果精度降低等弊端。同时,政府各各部门要求图件坐标系统并不一致,例如城市规划部门多年来一直采用阜新城市坐标系统,土地挂牌出让、登记发证采用国土部统一要求的西安80坐标系统,因此出现数据交换的问题,经常出现多次重复外业检核的现象。这种历史遗留的矛盾现象不仅造成大量的重复性劳动,影响各部门数据交换的顺畅,并且降低了测绘成果的可靠性。
因此,建立一直高效可靠的办法来解决坐标系之间相互转换的问题已经成为当前工作的难题。经过多次尝试和研究发现,利用MapInfo进行数据坐标转换可以达到预期目标。
该文通过两种方法对MapInfo数据的坐标转换做了一些研究。
1 Mapinfo数据坐标转换方法设计
1.1 基于VC和MapX平台坐标转换的设计
1)首先把.gst地图加载进来;
2)根据函数进行图元统计和分类,本文只针对线图元和点图元;
3)新建图层,用于添加转换后的图元,设置该图层的坐标系为转换后的坐标系,并且把原来的属性字段复制进来;
4)获取线图元节点个数,然后获得节点坐标;
5)获得节点坐标后进行坐标转换,转换时,应注意获得一个节点转换一个,把转换后的节点坐标以追加的方式添加在一个“点坐标.txt”文件中,把图元的属性值也添加在里面(以WGS84平面坐标转换为BJ54平面坐标为例):
(1)选择七参数时:首先进行高斯反算,接着把WGS84大地坐标转换为空间直角坐标;然后把WGS84空间直角坐标转换为BJ54的空间直角坐标;把BJ54的空间直角坐标转换为大地坐标,最后进行高斯正算获得BJ54平面坐标。
(2)选择四参数时:直接进行四参数计算把WGS84平面坐标转换为BJ54平面坐标,如果转换前的坐标是经纬度,进行高斯正算后再转换。
6)在坐标转换完成后,从“点坐标.txt”文件中读取各个图元的节点坐标,把读取的节点坐标赋予给点对象,再把点对象赋给点集对象:当一个图元上的节点坐标全部读取后,把点集对象转换为图元添加到新建的图层上,并且把相应的属性值赋给新添加的图元。
最终程序运行时的界面如图1。
1.2 基于AutoCAD Map 3D的坐标转换设计
首先把.tab文件导入到AutoCAD Map 3D,然后根据已知的X、Y平移量、旋转角度、缩放比例,运用命令进行转换,步骤如下:
1)平移:在命令行键入MOVE命令后命令行显示:“Select objects:”,选定全部图素,然后命令行显示:“Specify base point or[Displacement]
2)旋转:在命令行键入rotote命令;然后命令行显示:“Select objects:”,选定全部图素;接着命令行显示:“Specify base point:”,此时选择平移时的基点后回车;最后命令行显示:“Specify rotation angle or [Copy/Reference] <0>:”此时键入旋转角度后回车。
3)缩放:在命令行键入scale命令,命令行显示:“Select objects:”,选定全部图素;然后命令行显示:“XX found”,按下回车键;接着命令行显示:“Specify base point:”,此时选择平移时的基点后回车;最后命令行显示:“Specify scale factor or[Copy/Reference]<1.0000>:”,键入缩放比例后回车。
最后,再把DWG文件导出为“.tab”文件,导出时注意选择属性,这样属性数据就不会丢失了。
1.3 利用.prj进行转换
以WGS84坐标转换为BJ54坐标为例进行说明,步骤如下:
1)通过软件求出BJ54坐标系转换到WGS-84坐标系的七参数;
2)在.prj文件中定义出BJ54坐标系,然后保存;
3)在MapInfo中打开已知的.tab文件;
4)点“文件”选择下拉菜单中的“另存副本为”,弹出“另存表为”的对话框;
5)在“另存表为”的对话框中更改表的名称,点“投影”弹出“选择投影”对话框,在该对话框中选择自己定义的坐标系,最后点“另存表为”对话框中的保存即可。
2 实例分析
为了对上述坐标转换程序和方法进行检验,本文采用实际的10个控制点坐标数据导入到Mapinfo中生成5条线段来参与转换。线段名和起、终控制点坐标数据如表1所示。
2.1 基于VC和MapX方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出七参数:208.555452540641、187.953989974842、75.695433324101 、-1.626742、6.228388、-3.559023、0.402897421344201,这七个参数分别为X、Y、Z的平移参数和旋转参数、尺度参数,把这七个参数输入到如图1的界面中,进行转换,转换的结果以与已知的数据相比较结果如表2所示。
通过以上的比较可知,利用本程序进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于分米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.2 基于AutoCAD Map 3D 方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出四参数:40.6833491024723、-117.703797824564、1.00000187185103、2.301,这四个参数分别为X、Y的平移参数、尺度参数和旋转参数(以秒为单位),利用这四个参数和AutoCAD Map 3D下的转换步骤进行转换,转换的结果与已知的数据相比较结果如表3所示。
通过以上的比较可知,利用AutoCAD Map 3D进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.3 利用.prj进行转换的实例分析
本实例采用表1中的数据,转换的结果与已知的数据相比较结果如表4所示。
通过以上的比较可知,利用.prj进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
3 结语
在以上所论述坐标转换过程中,有三点需要注意:
1)在基于VC和MapX平台进行坐标转换时,MapX中默认的坐标系是WGS84的经纬度形式,所以在.tab文件调入后应该进行坐标系的定义,定义时还必须与Mapinfo中坐标系投影的定义相匹配,否则误差会达到几千米。在编写坐标转换代码时,注意转换公式里变量的单位,例如,利用参数解算软件求出的旋转参数是以秒为单位,三角函数运算时是以弧度为单位的,所以调用旋转参数时应除以206265。
2)在基于AutoCAD Map 3D进行坐标转换时,注意导入.tab文件时应该选取属性数据,否则在导出时属性数据会丢失,这样就会丧失地图的实用性。另外在进行旋转时输入的旋转参数是以度为单位,而一般的参数解算软件求出的旋转参数是以秒为单位,在输入时注意把秒化为度,否则坐标转换就会失去其准确性。
3)在利用.prj文件进行转换时,注意在定义坐标系时利用的七参数是通过当地基准面向WGS-84转换求得的。
通过对MapInfo数据坐标转换的研究,可以有效地解决国土资源管理工作中测绘成果坐标系不一致的困扰,该方法在一些非高精度要求的测绘图件坐标转换中可以得到充分的利用,及时有效地保障了工作的准确高效性,也为我们日后在该领域更深层次的研究奠定了基础。
参考文献
[1] 李敏,沈云中,刘春.基于MapInfo的电子地图坐标系定义与转换[J].测绘工程,2004,13(4):28-29.
[2] 何兴燕.基于MapInfo的福州地区坐标系定义与转换[J].露天采矿技术,2007(2):36-37.
[3] 石永乐,梁宏奇,李国林.AutoCAD绘图中的坐标转换[J].矿山测量,2006(2).
[4] 彭爱文,曹佩瑶,张胜利.平面坐标转换方法探讨及转换软件的设计思路[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[5] 宋伟凯,周瑞,程进明.基于MicroSt ation 2004平台矢量数据坐标转换的程序开发[C]//江苏省测绘学会2011年学术年会论文集,2011.
[6] 万大斌,熊金宝,梁武南.2000国家大地坐标系在长江航道测绘启用的思考[C]//中国航海学会航标专业委员会测绘学组学术研讨会学术交流论文集,2009年.
[7] 曾泛林,李土旺.广州市平面坐标系与1980年西安坐标系坐标转换工具的设计与实现[C]//广东省测绘学会第九次会员代表大会暨学术交流会论文集,2010.
[8] 吴飞.GIS建设中坐标转换方法研究[C]//中国测绘学会九届三次理事会暨2007年“信息化测绘论坛”学术年会论文集,2007.
[9] 邓作文,方门福.GPS技术在深港坐标转换中的应用[C]//广东省测绘学会第八次会员代表大会学术交流论文集,2005.
[10] 张岳,陶校君.浅述WGS84坐标到地方坐标系的转换[C]//地理空间信息技术及其应用论坛论文集,2005.
[11] 杨长银.关于城市坐标系及其投影改算问题[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[12] 吴兆福,高飞.基于Levenberg—Marquardt神经网络的GPS坐标转换[C]//华东地区第九次测绘学术交流大会论文集,2005.
[13] 余永生.安徽省名山主峰海拔高程测量方法及数据处理[C]//2009全国测绘科技信息交流会暨首届测绘博客征文颁奖论文集,2009.endprint
1.3 利用.prj进行转换
以WGS84坐标转换为BJ54坐标为例进行说明,步骤如下:
1)通过软件求出BJ54坐标系转换到WGS-84坐标系的七参数;
2)在.prj文件中定义出BJ54坐标系,然后保存;
3)在MapInfo中打开已知的.tab文件;
4)点“文件”选择下拉菜单中的“另存副本为”,弹出“另存表为”的对话框;
5)在“另存表为”的对话框中更改表的名称,点“投影”弹出“选择投影”对话框,在该对话框中选择自己定义的坐标系,最后点“另存表为”对话框中的保存即可。
2 实例分析
为了对上述坐标转换程序和方法进行检验,本文采用实际的10个控制点坐标数据导入到Mapinfo中生成5条线段来参与转换。线段名和起、终控制点坐标数据如表1所示。
2.1 基于VC和MapX方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出七参数:208.555452540641、187.953989974842、75.695433324101 、-1.626742、6.228388、-3.559023、0.402897421344201,这七个参数分别为X、Y、Z的平移参数和旋转参数、尺度参数,把这七个参数输入到如图1的界面中,进行转换,转换的结果以与已知的数据相比较结果如表2所示。
通过以上的比较可知,利用本程序进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于分米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.2 基于AutoCAD Map 3D 方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出四参数:40.6833491024723、-117.703797824564、1.00000187185103、2.301,这四个参数分别为X、Y的平移参数、尺度参数和旋转参数(以秒为单位),利用这四个参数和AutoCAD Map 3D下的转换步骤进行转换,转换的结果与已知的数据相比较结果如表3所示。
通过以上的比较可知,利用AutoCAD Map 3D进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.3 利用.prj进行转换的实例分析
本实例采用表1中的数据,转换的结果与已知的数据相比较结果如表4所示。
通过以上的比较可知,利用.prj进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
3 结语
在以上所论述坐标转换过程中,有三点需要注意:
1)在基于VC和MapX平台进行坐标转换时,MapX中默认的坐标系是WGS84的经纬度形式,所以在.tab文件调入后应该进行坐标系的定义,定义时还必须与Mapinfo中坐标系投影的定义相匹配,否则误差会达到几千米。在编写坐标转换代码时,注意转换公式里变量的单位,例如,利用参数解算软件求出的旋转参数是以秒为单位,三角函数运算时是以弧度为单位的,所以调用旋转参数时应除以206265。
2)在基于AutoCAD Map 3D进行坐标转换时,注意导入.tab文件时应该选取属性数据,否则在导出时属性数据会丢失,这样就会丧失地图的实用性。另外在进行旋转时输入的旋转参数是以度为单位,而一般的参数解算软件求出的旋转参数是以秒为单位,在输入时注意把秒化为度,否则坐标转换就会失去其准确性。
3)在利用.prj文件进行转换时,注意在定义坐标系时利用的七参数是通过当地基准面向WGS-84转换求得的。
通过对MapInfo数据坐标转换的研究,可以有效地解决国土资源管理工作中测绘成果坐标系不一致的困扰,该方法在一些非高精度要求的测绘图件坐标转换中可以得到充分的利用,及时有效地保障了工作的准确高效性,也为我们日后在该领域更深层次的研究奠定了基础。
参考文献
[1] 李敏,沈云中,刘春.基于MapInfo的电子地图坐标系定义与转换[J].测绘工程,2004,13(4):28-29.
[2] 何兴燕.基于MapInfo的福州地区坐标系定义与转换[J].露天采矿技术,2007(2):36-37.
[3] 石永乐,梁宏奇,李国林.AutoCAD绘图中的坐标转换[J].矿山测量,2006(2).
[4] 彭爱文,曹佩瑶,张胜利.平面坐标转换方法探讨及转换软件的设计思路[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[5] 宋伟凯,周瑞,程进明.基于MicroSt ation 2004平台矢量数据坐标转换的程序开发[C]//江苏省测绘学会2011年学术年会论文集,2011.
[6] 万大斌,熊金宝,梁武南.2000国家大地坐标系在长江航道测绘启用的思考[C]//中国航海学会航标专业委员会测绘学组学术研讨会学术交流论文集,2009年.
[7] 曾泛林,李土旺.广州市平面坐标系与1980年西安坐标系坐标转换工具的设计与实现[C]//广东省测绘学会第九次会员代表大会暨学术交流会论文集,2010.
[8] 吴飞.GIS建设中坐标转换方法研究[C]//中国测绘学会九届三次理事会暨2007年“信息化测绘论坛”学术年会论文集,2007.
[9] 邓作文,方门福.GPS技术在深港坐标转换中的应用[C]//广东省测绘学会第八次会员代表大会学术交流论文集,2005.
[10] 张岳,陶校君.浅述WGS84坐标到地方坐标系的转换[C]//地理空间信息技术及其应用论坛论文集,2005.
[11] 杨长银.关于城市坐标系及其投影改算问题[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[12] 吴兆福,高飞.基于Levenberg—Marquardt神经网络的GPS坐标转换[C]//华东地区第九次测绘学术交流大会论文集,2005.
[13] 余永生.安徽省名山主峰海拔高程测量方法及数据处理[C]//2009全国测绘科技信息交流会暨首届测绘博客征文颁奖论文集,2009.endprint
1.3 利用.prj进行转换
以WGS84坐标转换为BJ54坐标为例进行说明,步骤如下:
1)通过软件求出BJ54坐标系转换到WGS-84坐标系的七参数;
2)在.prj文件中定义出BJ54坐标系,然后保存;
3)在MapInfo中打开已知的.tab文件;
4)点“文件”选择下拉菜单中的“另存副本为”,弹出“另存表为”的对话框;
5)在“另存表为”的对话框中更改表的名称,点“投影”弹出“选择投影”对话框,在该对话框中选择自己定义的坐标系,最后点“另存表为”对话框中的保存即可。
2 实例分析
为了对上述坐标转换程序和方法进行检验,本文采用实际的10个控制点坐标数据导入到Mapinfo中生成5条线段来参与转换。线段名和起、终控制点坐标数据如表1所示。
2.1 基于VC和MapX方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出七参数:208.555452540641、187.953989974842、75.695433324101 、-1.626742、6.228388、-3.559023、0.402897421344201,这七个参数分别为X、Y、Z的平移参数和旋转参数、尺度参数,把这七个参数输入到如图1的界面中,进行转换,转换的结果以与已知的数据相比较结果如表2所示。
通过以上的比较可知,利用本程序进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于分米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.2 基于AutoCAD Map 3D 方法的实例分析
本实例采用表1中的数据,根据已知的软件先求出四参数:40.6833491024723、-117.703797824564、1.00000187185103、2.301,这四个参数分别为X、Y的平移参数、尺度参数和旋转参数(以秒为单位),利用这四个参数和AutoCAD Map 3D下的转换步骤进行转换,转换的结果与已知的数据相比较结果如表3所示。
通过以上的比较可知,利用AutoCAD Map 3D进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
2.3 利用.prj进行转换的实例分析
本实例采用表1中的数据,转换的结果与已知的数据相比较结果如表4所示。
通过以上的比较可知,利用.prj进行转换求得转换后坐标数据与已知的坐标数据之间的差值都处于米级以下,并且各个线段的属性没有改变,在对图形精度要求不高的条件下,这样的转换精度是完全可以接受的。
3 结语
在以上所论述坐标转换过程中,有三点需要注意:
1)在基于VC和MapX平台进行坐标转换时,MapX中默认的坐标系是WGS84的经纬度形式,所以在.tab文件调入后应该进行坐标系的定义,定义时还必须与Mapinfo中坐标系投影的定义相匹配,否则误差会达到几千米。在编写坐标转换代码时,注意转换公式里变量的单位,例如,利用参数解算软件求出的旋转参数是以秒为单位,三角函数运算时是以弧度为单位的,所以调用旋转参数时应除以206265。
2)在基于AutoCAD Map 3D进行坐标转换时,注意导入.tab文件时应该选取属性数据,否则在导出时属性数据会丢失,这样就会丧失地图的实用性。另外在进行旋转时输入的旋转参数是以度为单位,而一般的参数解算软件求出的旋转参数是以秒为单位,在输入时注意把秒化为度,否则坐标转换就会失去其准确性。
3)在利用.prj文件进行转换时,注意在定义坐标系时利用的七参数是通过当地基准面向WGS-84转换求得的。
通过对MapInfo数据坐标转换的研究,可以有效地解决国土资源管理工作中测绘成果坐标系不一致的困扰,该方法在一些非高精度要求的测绘图件坐标转换中可以得到充分的利用,及时有效地保障了工作的准确高效性,也为我们日后在该领域更深层次的研究奠定了基础。
参考文献
[1] 李敏,沈云中,刘春.基于MapInfo的电子地图坐标系定义与转换[J].测绘工程,2004,13(4):28-29.
[2] 何兴燕.基于MapInfo的福州地区坐标系定义与转换[J].露天采矿技术,2007(2):36-37.
[3] 石永乐,梁宏奇,李国林.AutoCAD绘图中的坐标转换[J].矿山测量,2006(2).
[4] 彭爱文,曹佩瑶,张胜利.平面坐标转换方法探讨及转换软件的设计思路[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[5] 宋伟凯,周瑞,程进明.基于MicroSt ation 2004平台矢量数据坐标转换的程序开发[C]//江苏省测绘学会2011年学术年会论文集,2011.
[6] 万大斌,熊金宝,梁武南.2000国家大地坐标系在长江航道测绘启用的思考[C]//中国航海学会航标专业委员会测绘学组学术研讨会学术交流论文集,2009年.
[7] 曾泛林,李土旺.广州市平面坐标系与1980年西安坐标系坐标转换工具的设计与实现[C]//广东省测绘学会第九次会员代表大会暨学术交流会论文集,2010.
[8] 吴飞.GIS建设中坐标转换方法研究[C]//中国测绘学会九届三次理事会暨2007年“信息化测绘论坛”学术年会论文集,2007.
[9] 邓作文,方门福.GPS技术在深港坐标转换中的应用[C]//广东省测绘学会第八次会员代表大会学术交流论文集,2005.
[10] 张岳,陶校君.浅述WGS84坐标到地方坐标系的转换[C]//地理空间信息技术及其应用论坛论文集,2005.
[11] 杨长银.关于城市坐标系及其投影改算问题[C]//2007'全国测绘科技信息交流会暨信息网成立30周年庆典论文集,2007.
[12] 吴兆福,高飞.基于Levenberg—Marquardt神经网络的GPS坐标转换[C]//华东地区第九次测绘学术交流大会论文集,2005.
[13] 余永生.安徽省名山主峰海拔高程测量方法及数据处理[C]//2009全国测绘科技信息交流会暨首届测绘博客征文颁奖论文集,2009.endprint