張振華 王遠斌 葉 玲
(中國電子科技集團公司第二十八研究所 南京 210007)
?
基于S-57標準的電子海圖的設計與實現*
張振華 王遠斌 葉 玲
(中國電子科技集團公司第二十八研究所 南京 210007)
論文通過介紹電子海圖IHO S-57標準(數據傳輸標準)、IHO S-52標準(海圖顯示標準),并對這兩套標準的數據模型、數據結構等相關內容進行深入分析,在此基礎上,引出電子海圖顯示系統開發的關鍵技術。接著,通過對電子海圖開發商用控件YimaEnc.ocx的SDK開發包的介紹,著重論述了電子海圖顯示系統的開發過程。最后,對電子海圖開發過程中遇到的問題進行了總結,并指出了不足之處。以待后期進一步完善。
S-57; S-52; 電子海圖; 電子海圖顯示與信息系統
Class Number U666
電子海圖顯示與信息系統(Electronic Chart Dis-play and Information System,ECDIS),是指使用電子航海圖,接收艦船的定位、測深、雷達等設備的信號,為航海人員實時提供艦船行駛狀態的地理信息系統。隨著電子海圖技術的迅猛發展,國際海事組織(IMO)、國際海道測量組織(IHO)和國際電工委員會(IEC)協調制定了一系列電子海圖的國際規范和標準:S-57海道測量數據交換標準、S-52電子海圖顯示標準和IEC61174 ECDIS硬件檢測標準。我國已研制成功并決定正式生產和使用S-57電子海圖,但缺少S-57國際標準電子海圖實用的顯示與信息系統[1~2]。
一個符合S-57標準的海圖系統,意味著使用符合S-57《數字海道測量數據傳輸標準》的地理數據并且顯示方法符合S-52 《ECDIS海圖內容與顯示規范》。這兩個標準是IHO成立專門委員會,針對電子海圖的生產及應用而開發的。
2.1 S-57標準數據模型及數據結構
2.1.1 S-57標準數據模型
該標準包括三個部分:引言、理論模型、數據模型。附有二個附錄:A-物標類目,B-ENC產品規范[3]。
下面簡單說明S-57的數據模型概念及其實現:
S-57的數據模型是針對真實世界的數據傳輸,是相關海洋測繪的真實世界物體,它將真實世界的物體定義為特征物標和空間物標的集合。
· 物標:一組可識別信息,可以具有屬性,可能與其他物標相關。
· 空間物標:可能有描述信息但是一定要有幾何信息。S-57數據模型的空間物標為矢量空間物標(分為:點、線、面,三種)。最常見的空間物標就是特征物標的經緯度。
· 特征物標:包含描述信息,不能包含幾何信息,可以由一個或幾個空間物標定位,也可以不對應空間物標。分四類:元物標,地理物標,制圖物標,集合物標。
S-57數據模型,即空間物標之間的關系,采用鏈-結點結構,描述如圖1所示。

圖1 鏈-點拓撲結構下的數據模型
S-57標準共規定了181個通用物標類別,21個航海人員物標類別,通過196種通用類別屬性和29種航海人員類別屬性可定義至少6265種物標。
2.1.2 S-57標準海圖數據結構解析
S-57標準海圖數據結構,內容如下:
1) 一般編碼規則(全部編碼應遵循);
2) 元記錄編碼規則(對應元物標);
3) 特征記錄編碼規則(對應特征物標);
4) 空間記錄編碼規則(對應空間物標);
5) 關系編碼(對應關系物標)。
海圖文件的存儲格式(即底層的封裝標準),使用了ISO/IEC8211標準作為數據封裝的標準,相關內容包括:
1) ISO/IEC 8211標準備用字符集;
2) S-57標準附錄A:物標類目;
3) S-57標準附錄B:產品規范。
2.2 S-52顯示標準相關內容
為了與S-57標準相對應,IHO在1996年12月通過了關于電子海圖內容、圖標、顏色和ECDIS的相應規范《ECDIS海圖內容與顯示規范》,簡稱為IHO S-52標準[4]。
S-52標準包括兩個附件,三個附錄,分別如下:
1) 附件A:S-52與IMO ECDIS性能標準交叉參考表;
2) 附件B:IMO ECDIS性能標準;
3) 附錄1:電子航海圖更新指南;
4) 附錄2:電子海圖顯示與信息系統色彩與符號規定;
5) 附錄3:電子海圖顯示與信息系統相關術語集。
在此,重點介紹附錄2,該規定用于制作電子海圖符號以及顯示電子海圖,以確保系統在顯示海圖時是清晰明確的,包括兩個主要部分的內容:表示庫、色彩與符號規定。
表示庫:涉及大量符號建庫。
色彩與符號:包括兩部分內容:
1) 點狀、線狀、面狀符號及色彩的規定;
2) 顯示信息的分類規定:根據要素信息顯示的多少,分為基本顯示,標準顯示,全部顯示三種類型。
本文研制開發電子海圖,采用了上海意瑪公司的YimaEnc商用組件作為支撐平臺。在Windows XP及Windows 7操作系統上,支持Visual C++ 6.0及Visual Studio 2005,最終研制開發了符合S-57數據標準的電子海圖顯示與信息系統,實現了S-57電子海圖數據的各種方式的顯示、多幅海圖的無縫拼接、晨昏朦影、水深和物標數據屬性顯示等多項功能。
3.1 SDK API介紹
3.1.1 工作環境
YimaEnc組件包括核心控件YimaEnc.ocx,以及7各庫文件。
1) S57Attributes:是所有S-57的物標特征屬性(feature attribute)的定義,包括每個屬性的名稱,縮略語,數據類型和枚舉(enmu)或列表(list)類型的各項枚舉值;
2) S57Colours:是所有S-52定義的五種顏色模式(Color Model)下的顏色列表;
3) S57LookupTable:是所有S-52物標對象顯示風格規則的定義;
4) S57ObjectClasses:是所有S-57物標類(Object Class,即圖層——Layer)的定義;
5) S57Symbols:是所有S-52的點物標符號定義;
6) S57ComplexLineStyles:是所有S-52的線物標循環符號定義;
7) S57Patterns:是所有S-52的面物標填充符號定義。
3.1.2 基本接口函數
1) 海圖組件初始化接口函數:Boolean Init(String strWorkDir),參數為海圖執行程序所在的目錄,該函數只需執行一次;
2) 海圖繪制器初始化:Boolean RefreshDrawer(Int32 hwnd,Int32 scrnWidth,Int32 scrnHeight,Int32 scrnOrgOffsetPoX,Int32 scrnOrgOffsetPoY),參數為需要繪制區域的窗口句柄、長、寬及X、Y軸的偏移量,該函數在海圖組件初始化接口函數執行后調用,為海圖繪制準備好繪制器。
3) 海圖繪制函數:Boolean DrawMapsInScreen(Int32 hdc),參數為需繪制區域的窗口DC,該函數在上述兩個函數執行后,即可調用,繪制區域為矩形區域。
3.2 開發過程
3.2.1 工程的建立
1) 注冊YimaEnc.ocx組件,方法如下:
開始→運行:運行命令regsvr32 “YIMAENC組件所在的絕對路徑”,注冊成功標志如圖2所示。

圖2 YimaEnc.ocx控件的注冊
2) Microsoft Visual Studio 2005下,新建MFC工程,選擇項目→添加類→MFC→選擇ActiveX控件中的MFC類,添加后,選擇可用的ActiveX控件,找到YimaEnc.ocx,如圖3所示。
注意:只有在YimaEnc.ocx組件注冊成功后,方能找到YimaEnc Control<1.0>控件選項。
選中該控件后,點擊“生成類”,即完成控件添加。

圖3 添加海圖控件
3.2.2 應用界面的設計
應用界面的設計,包含海圖繪制顯示區、標題欄區域、工具欄區域、狀態欄區域、海圖漫游區域、海圖比例尺區域、指北針顯示區域、文電顯示區域等。界面布局如圖4所示。

圖4 海圖顯示界面規劃圖
實際效果圖如圖5所示。

圖5 海圖顯示實際效果圖
3.2.3 顯示顏色模式的設計
通過調用接口函數void SetColorModel(Int16 colorGroupNum),顯示系統為用戶提供了五種S-52標準的顯示模式。參數colorGroupNum為顏色枚舉值,分別為白天明亮、白天反白、白天反黑、黃昏、夜晚。局部圖分別如圖6~圖10所示。

圖6 白天明亮顏色模式

圖7 白天反白顏色模式

圖8 白天反黑顏色模式

圖9 黃昏顏色模式
3.2.4 顯示物標類型的設計
通過調用接口函數void SetDisplayCategory(Int16 dspCtgry),顯示系統為用戶提供了三種S-52標準的顯示物標類型,參數dspCtgry為類型枚舉值,分別為基本、標準、全部。局部圖分別如圖11~圖13所示。

圖10 夜晚顏色模式

圖11 基本顯示類型

圖12 標準顯示類型

圖13 全部顯示類型
3.2.5 目標顯示的設計
為了直觀地觀看目標位置,可以通過接入AIS、ADS-B等設備,獲取目標位置信息,通過調用Boolean AddOtherVessel()、Boolean SetOtherVesselCurrentInfo()、bool SetAisTargetType()函數,添加目標信息,最終由Boolean DrawMapsInScreen(Int32 hdc)函數在海圖顯示區域繪制出接收到的目標。如圖14所示。

圖14 目標顯示
3.2.6 自定義海圖編輯的設計
在用戶實際應用中,會有關注的目標點、隔離線、報警區域等。因此,海圖的自定義編輯同樣是一項不可或缺的重要功能,本系統采用貼圖方法以及MicroSoft提供的圖形設備接口GDI+中的Graphics類提供的DrawLine、DrawRectangle、DrawEllipse、DrawPolygon、DrawArc等方法,實現自定義的海圖編輯[5~6]。并將自定義編輯數據通過用戶索引保存在本端,在不同用戶調用時顯示各個用戶關注的編輯區。實現了個性化的定制功能[7~8]。
具體繪制效果如圖15所示。

圖15 海圖編輯效果
3.2.7 其它輔助功能的設計
YimaEnc組件功能完備,在上述功能設計的同時,筆者也開發了以下幾種輔助功能,僅做簡要介紹。
1) 比例尺顯示:通過示意棒直觀顯示海圖比例尺,同時數字顯示當前比例尺。
2) 水深顯示:對各個海域的水深值做標注。
3) 圖庫管理:加載*.000格式的電子海圖。
4) 圖層管理:對181層S-57數據標準的圖層進行篩選顯示。
5) 電子方位線:測量相對于某一固定點的任一位置的方位。
6) 距離測量:測量海圖上任意兩點之間的距離。
本文結合S-57、S-52海圖國際標準,采用商用組件YimaEnc,設計和實現了電子海圖顯示系統,對海圖數據結構、顯示標準等特征進行了分析,在開發實踐基礎上驗證總結了電子海圖開發中的關鍵技術[9~10]。
同時,也總結了幾點有待改進及不足之處:
1) 顯示界面可進一步美化。
2) 一些功能模塊有待實現組件化,以降低系統復雜性。
3) 下一步可考慮實現鷹眼、多窗口顯示功能。
4) 若功能需要,可進行雷達視頻圖像疊加顯示功能的開發。
[1] The International Hydrographic Bureau.IHO S-57 IHO TRANSFER STANDARD for DIGITAL HYDROGRAPHIC DATAEdition 3.1[S].MONACO,2000:18-19.
[2] The International Hydrographic Bureau.IHO S-52 SPECIFICATIONS FOR CHART CONTENT AND DISPLAY ASPECTS OF ECDIS Edition 6.0[S].MONACO,2010:29-31.
[3] 國際海道測量組織.電子海圖及其應用系統國際規范和標準(S-57篇)[M].大連:大連海事大學出版社,1999:30-33.
[4] 國際海道測量組織.電子海圖及其應用系統國際規范和標準(S-52篇)[M].北京:中國船舶工業總公司船舶系統工程部,1995:15-16.
[5] 楊平,任娟.基于DGI+的高質量地圖實現方法[J].北京測繪,2007(2):13-15.
[6] 劉廠,郝燕玲,高峰.國際標準電子海圖系統關鍵技術研究[J].中國航海,2011(6):24-27.
[7] 王玉璽,李青元.電子海圖顯示與信息系統設計與實現[J].數字技術與應用,2010(4):47-49.
[8] 徐智,孫堯,徐繼晨.電子海圖漫游及放大技術研究[J].計算機工程,2000(6):11-12.
[9] 郝江凌,劉大禹,周連濱.關于S-57[J].世界海運,2005(12):47-48.
[10] 花文華,許兆新.基于組件技術的電子海圖顯示系統開發方法[J].應用科技,2007(4):32-33.
Design and Implementation of Electronic Chart Based on S-57 Standard
ZHANG Zhenhua WANG Yuanbin YE Ling
(The 28th Research Institute of China Electronics Technology Group Corporation,Nanjing 210007)
This paper describes the IHO S-57 standard(data transfer standard),the IHO S-52 standard(Chart Display standard),and analyzes these two sets of standard data models,data structures and other related content in depth.On this basis,the key technology leads electronic chart display system development.Then,based on the electronic chart and development of commercial YimaEnc.ocx control SDK development package introduced,the electronic chart display system development process is emphatically discussed.Finally,the paper summarizes in process of electronic chart development problems,and points out the shortcomings.
S-57,S-52,electronic charts,ECDIS
2014年8月1日,
2014年9月11日
張振華,男,碩士,工程師,研究方向:裝備系統工程,電子海圖。王遠斌,男,碩士,工程師,研究方向:艦載雷達設備研究,數據處理。葉玲,女,碩士,工程師,研究方向:雷達顯控設計,雷達信號處理。
U666
10.3969/j.issn1672-9730.2015.02.026