基于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、結束語
本文設計了北斗定位數據的接收模塊并實現了數據的實時處理,在更新導航電子地圖中,可以較好的運用到道路網的更新上,具有效率高的特點。隨著北斗衛星導航系統空間衛星數的增多,地面差分站建設的完善,以及測量型北斗接收機的普及,北斗定位精度將得到較大提高,屆時,該方法將可以運用到大比例尺地形圖的更新上。