基于AUTOCAD的北斗定位数据接收模块的设计与实现
在AUTOCAD 平台的基础上,通过二次开发,增加北斗接收机定位数据接收及处理模块,可以快速采集CGCS2000 坐标系下的定位数据,达到快速更新地图数据的目的。据此,采用C#语言在AUTOCAD 平台上设计了北斗定位数据的接收及处理模块,并实现了数据的接收及实时处理。
目前,随着CGCS2000 国家大地坐标系的启用,我国正在加速更新地图数据成果,国家要求用8 - 10 年时间,完成现有的各类基础测绘成果和基础地理信息数据库的坐标系向CGCS2000国家大地坐标系的过度和转换,转换后部分数据需要实际测量检测更新,而当前地图数据的野外获取多数采用的是GPS 定位数据,自主独立性不高,随着我国正在加速建设自主研制的北斗卫星导航系统,采用北斗定位数据更新地图成果将能更好发挥独立自主的优势。目前北斗卫星导航系统已经能够为我国及周边范围提供实现实时无源定位,北斗卫星导航系统采用的是CGCS2000 国家大地坐标系,定位精度目前能够达到10 m,随着系统建设的完善,精度将会得到进一步提高。在AUTOCAD 平台基础上,可以设计实现北斗定位数据接收及实时处理模块。
1、定位数据接收及处理模块的设计与实现
1. 1、二次开发环境的简介
北斗定位数据接收及处理模块是在ATUOCAD 平台的基础上采用C#语言编程实现的。早期的AUTOCAD 二次开发语言主要有LISP 语言、C + + 语言、VBA 语言,从AUTOCAD 2006 开始,Autodesk 为其开发增加了. NET API。. NET API 提供了一系列托管的外包类,使开发人员可在. NET 框架下,使用任何支持. NET 的语言,如VB. NET、C#和Managed C + + 等对AUTOCAD进行二次开发。. NET API 与传统ObjectARX 的区别主要源于在. NET 环境下开发应用程序与在VC 环境下开发应用程序的区别,在VC 环境下,程序员需要自己管理内存的申请和释放,而. NET 框架自行判断内存回收的时机并实行回收,从而解决了C + + 内存泄漏问题,是较理想的AUTOCAD 二次开发工具。
在与北斗接收机进行数据交换采用的是串口通信方式,利用. NET 框架下的Serialport 串口通信类编程可方便实现所需要串口通讯的多种功能。
1.2、北斗定位数据概述
北斗卫星导航定位系统是我国自主研制的卫星导航定位系统,空间星座部分由5 颗GEO 卫星和30 颗非GEO 卫星构成,还正处于组网建设阶段,建设完成后能够在全球范围内提供实时无源定位,目前在中国及周边范围内能够提供全天候无源定位。
北斗接收机也采用美国国家海洋电子协会制定的NMEA -0183 协议通信。NMEA0183 规定的数据,采用ANSI 标准,以串口非同步传送。协议规定每条语句都以字符“$ ”为起始标识符,其后紧跟5 个ASCII 字符的地址域值,然后是以域分隔符“,”分隔开的若干数据域和一个校验域,最后以回车换行符( CRLF) 作为语句结束标识符。北斗接收机常用语句有GSA、GGA、ZDA、GSV、RMC 等。以BDGGA 数据为例,其格式如表1 所示。
2、结束语
本文设计了北斗定位数据的接收模块并实现了数据的实时处理,在更新导航电子地图中,可以较好的运用到道路网的更新上,具有效率高的特点。随着北斗卫星导航系统空间卫星数的增多,地面差分站建设的完善,以及测量型北斗接收机的普及,北斗定位精度将得到较大提高,届时,该方法将可以运用到大比例尺地形图的更新上。