張振華 王遠(yuǎn)斌 葉 玲
(中國電子科技集團(tuán)公司第二十八研究所 南京 210007)
?
基于S-57標(biāo)準(zhǔn)的電子海圖的設(shè)計(jì)與實(shí)現(xiàn)*
張振華 王遠(yuǎn)斌 葉 玲
(中國電子科技集團(tuán)公司第二十八研究所 南京 210007)
論文通過介紹電子海圖IHO S-57標(biāo)準(zhǔn)(數(shù)據(jù)傳輸標(biāo)準(zhǔn))、IHO S-52標(biāo)準(zhǔn)(海圖顯示標(biāo)準(zhǔn)),并對這兩套標(biāo)準(zhǔn)的數(shù)據(jù)模型、數(shù)據(jù)結(jié)構(gòu)等相關(guān)內(nèi)容進(jìn)行深入分析,在此基礎(chǔ)上,引出電子海圖顯示系統(tǒng)開發(fā)的關(guān)鍵技術(shù)。接著,通過對電子海圖開發(fā)商用控件YimaEnc.ocx的SDK開發(fā)包的介紹,著重論述了電子海圖顯示系統(tǒng)的開發(fā)過程。最后,對電子海圖開發(fā)過程中遇到的問題進(jìn)行了總結(jié),并指出了不足之處。以待后期進(jìn)一步完善。
S-57; S-52; 電子海圖; 電子海圖顯示與信息系統(tǒng)
Class Number U666
電子海圖顯示與信息系統(tǒng)(Electronic Chart Dis-play and Information System,ECDIS),是指使用電子航海圖,接收艦船的定位、測深、雷達(dá)等設(shè)備的信號,為航海人員實(shí)時(shí)提供艦船行駛狀態(tài)的地理信息系統(tǒng)。隨著電子海圖技術(shù)的迅猛發(fā)展,國際海事組織(IMO)、國際海道測量組織(IHO)和國際電工委員會(IEC)協(xié)調(diào)制定了一系列電子海圖的國際規(guī)范和標(biāo)準(zhǔn):S-57海道測量數(shù)據(jù)交換標(biāo)準(zhǔn)、S-52電子海圖顯示標(biāo)準(zhǔn)和IEC61174 ECDIS硬件檢測標(biāo)準(zhǔn)。我國已研制成功并決定正式生產(chǎn)和使用S-57電子海圖,但缺少S-57國際標(biāo)準(zhǔn)電子海圖實(shí)用的顯示與信息系統(tǒng)[1~2]。
一個(gè)符合S-57標(biāo)準(zhǔn)的海圖系統(tǒng),意味著使用符合S-57《數(shù)字海道測量數(shù)據(jù)傳輸標(biāo)準(zhǔn)》的地理數(shù)據(jù)并且顯示方法符合S-52 《ECDIS海圖內(nèi)容與顯示規(guī)范》。這兩個(gè)標(biāo)準(zhǔn)是IHO成立專門委員會,針對電子海圖的生產(chǎn)及應(yīng)用而開發(fā)的。
2.1 S-57標(biāo)準(zhǔn)數(shù)據(jù)模型及數(shù)據(jù)結(jié)構(gòu)
2.1.1 S-57標(biāo)準(zhǔn)數(shù)據(jù)模型
該標(biāo)準(zhǔn)包括三個(gè)部分:引言、理論模型、數(shù)據(jù)模型。附有二個(gè)附錄:A-物標(biāo)類目,B-ENC產(chǎn)品規(guī)范[3]。
下面簡單說明S-57的數(shù)據(jù)模型概念及其實(shí)現(xiàn):
S-57的數(shù)據(jù)模型是針對真實(shí)世界的數(shù)據(jù)傳輸,是相關(guān)海洋測繪的真實(shí)世界物體,它將真實(shí)世界的物體定義為特征物標(biāo)和空間物標(biāo)的集合。
· 物標(biāo):一組可識別信息,可以具有屬性,可能與其他物標(biāo)相關(guān)。
· 空間物標(biāo):可能有描述信息但是一定要有幾何信息。S-57數(shù)據(jù)模型的空間物標(biāo)為矢量空間物標(biāo)(分為:點(diǎn)、線、面,三種)。最常見的空間物標(biāo)就是特征物標(biāo)的經(jīng)緯度。
· 特征物標(biāo):包含描述信息,不能包含幾何信息,可以由一個(gè)或幾個(gè)空間物標(biāo)定位,也可以不對應(yīng)空間物標(biāo)。分四類:元物標(biāo),地理物標(biāo),制圖物標(biāo),集合物標(biāo)。
S-57數(shù)據(jù)模型,即空間物標(biāo)之間的關(guān)系,采用鏈-結(jié)點(diǎn)結(jié)構(gòu),描述如圖1所示。
圖1 鏈-點(diǎn)拓?fù)浣Y(jié)構(gòu)下的數(shù)據(jù)模型
S-57標(biāo)準(zhǔn)共規(guī)定了181個(gè)通用物標(biāo)類別,21個(gè)航海人員物標(biāo)類別,通過196種通用類別屬性和29種航海人員類別屬性可定義至少6265種物標(biāo)。
2.1.2 S-57標(biāo)準(zhǔn)海圖數(shù)據(jù)結(jié)構(gòu)解析
S-57標(biāo)準(zhǔn)海圖數(shù)據(jù)結(jié)構(gòu),內(nèi)容如下:
1) 一般編碼規(guī)則(全部編碼應(yīng)遵循);
2) 元記錄編碼規(guī)則(對應(yīng)元物標(biāo));
3) 特征記錄編碼規(guī)則(對應(yīng)特征物標(biāo));
4) 空間記錄編碼規(guī)則(對應(yīng)空間物標(biāo));
5) 關(guān)系編碼(對應(yīng)關(guān)系物標(biāo))。
海圖文件的存儲格式(即底層的封裝標(biāo)準(zhǔn)),使用了ISO/IEC8211標(biāo)準(zhǔn)作為數(shù)據(jù)封裝的標(biāo)準(zhǔn),相關(guān)內(nèi)容包括:
1) ISO/IEC 8211標(biāo)準(zhǔn)備用字符集;
2) S-57標(biāo)準(zhǔn)附錄A:物標(biāo)類目;
3) S-57標(biāo)準(zhǔn)附錄B:產(chǎn)品規(guī)范。
2.2 S-52顯示標(biāo)準(zhǔn)相關(guān)內(nèi)容
為了與S-57標(biāo)準(zhǔn)相對應(yīng),IHO在1996年12月通過了關(guān)于電子海圖內(nèi)容、圖標(biāo)、顏色和ECDIS的相應(yīng)規(guī)范《ECDIS海圖內(nèi)容與顯示規(guī)范》,簡稱為IHO S-52標(biāo)準(zhǔn)[4]。
S-52標(biāo)準(zhǔn)包括兩個(gè)附件,三個(gè)附錄,分別如下:
1) 附件A:S-52與IMO ECDIS性能標(biāo)準(zhǔn)交叉參考表;
2) 附件B:IMO ECDIS性能標(biāo)準(zhǔn);
3) 附錄1:電子航海圖更新指南;
4) 附錄2:電子海圖顯示與信息系統(tǒng)色彩與符號規(guī)定;
5) 附錄3:電子海圖顯示與信息系統(tǒng)相關(guān)術(shù)語集。
在此,重點(diǎn)介紹附錄2,該規(guī)定用于制作電子海圖符號以及顯示電子海圖,以確保系統(tǒng)在顯示海圖時(shí)是清晰明確的,包括兩個(gè)主要部分的內(nèi)容:表示庫、色彩與符號規(guī)定。
表示庫:涉及大量符號建庫。
色彩與符號:包括兩部分內(nèi)容:
1) 點(diǎn)狀、線狀、面狀符號及色彩的規(guī)定;
2) 顯示信息的分類規(guī)定:根據(jù)要素信息顯示的多少,分為基本顯示,標(biāo)準(zhǔn)顯示,全部顯示三種類型。
本文研制開發(fā)電子海圖,采用了上海意瑪公司的YimaEnc商用組件作為支撐平臺。在Windows XP及Windows 7操作系統(tǒng)上,支持Visual C++ 6.0及Visual Studio 2005,最終研制開發(fā)了符合S-57數(shù)據(jù)標(biāo)準(zhǔn)的電子海圖顯示與信息系統(tǒng),實(shí)現(xiàn)了S-57電子海圖數(shù)據(jù)的各種方式的顯示、多幅海圖的無縫拼接、晨昏朦影、水深和物標(biāo)數(shù)據(jù)屬性顯示等多項(xiàng)功能。
3.1 SDK API介紹
3.1.1 工作環(huán)境
YimaEnc組件包括核心控件YimaEnc.ocx,以及7各庫文件。
1) S57Attributes:是所有S-57的物標(biāo)特征屬性(feature attribute)的定義,包括每個(gè)屬性的名稱,縮略語,數(shù)據(jù)類型和枚舉(enmu)或列表(list)類型的各項(xiàng)枚舉值;
2) S57Colours:是所有S-52定義的五種顏色模式(Color Model)下的顏色列表;
3) S57LookupTable:是所有S-52物標(biāo)對象顯示風(fēng)格規(guī)則的定義;
4) S57ObjectClasses:是所有S-57物標(biāo)類(Object Class,即圖層——Layer)的定義;
5) S57Symbols:是所有S-52的點(diǎn)物標(biāo)符號定義;
6) S57ComplexLineStyles:是所有S-52的線物標(biāo)循環(huán)符號定義;
7) S57Patterns:是所有S-52的面物標(biāo)填充符號定義。
3.1.2 基本接口函數(shù)
1) 海圖組件初始化接口函數(shù):Boolean Init(String strWorkDir),參數(shù)為海圖執(zhí)行程序所在的目錄,該函數(shù)只需執(zhí)行一次;
2) 海圖繪制器初始化:Boolean RefreshDrawer(Int32 hwnd,Int32 scrnWidth,Int32 scrnHeight,Int32 scrnOrgOffsetPoX,Int32 scrnOrgOffsetPoY),參數(shù)為需要繪制區(qū)域的窗口句柄、長、寬及X、Y軸的偏移量,該函數(shù)在海圖組件初始化接口函數(shù)執(zhí)行后調(diào)用,為海圖繪制準(zhǔn)備好繪制器。
3) 海圖繪制函數(shù):Boolean DrawMapsInScreen(Int32 hdc),參數(shù)為需繪制區(qū)域的窗口DC,該函數(shù)在上述兩個(gè)函數(shù)執(zhí)行后,即可調(diào)用,繪制區(qū)域?yàn)榫匦螀^(qū)域。
3.2 開發(fā)過程
3.2.1 工程的建立
1) 注冊YimaEnc.ocx組件,方法如下:
開始→運(yùn)行:運(yùn)行命令regsvr32 “YIMAENC組件所在的絕對路徑”,注冊成功標(biāo)志如圖2所示。
圖2 YimaEnc.ocx控件的注冊
2) Microsoft Visual Studio 2005下,新建MFC工程,選擇項(xiàng)目→添加類→MFC→選擇ActiveX控件中的MFC類,添加后,選擇可用的ActiveX控件,找到Y(jié)imaEnc.ocx,如圖3所示。
注意:只有在YimaEnc.ocx組件注冊成功后,方能找到Y(jié)imaEnc Control<1.0>控件選項(xiàng)。
選中該控件后,點(diǎn)擊“生成類”,即完成控件添加。
圖3 添加海圖控件
3.2.2 應(yīng)用界面的設(shè)計(jì)
應(yīng)用界面的設(shè)計(jì),包含海圖繪制顯示區(qū)、標(biāo)題欄區(qū)域、工具欄區(qū)域、狀態(tài)欄區(qū)域、海圖漫游區(qū)域、海圖比例尺區(qū)域、指北針顯示區(qū)域、文電顯示區(qū)域等。界面布局如圖4所示。
圖4 海圖顯示界面規(guī)劃圖
實(shí)際效果圖如圖5所示。
圖5 海圖顯示實(shí)際效果圖
3.2.3 顯示顏色模式的設(shè)計(jì)
通過調(diào)用接口函數(shù)void SetColorModel(Int16 colorGroupNum),顯示系統(tǒng)為用戶提供了五種S-52標(biāo)準(zhǔn)的顯示模式。參數(shù)colorGroupNum為顏色枚舉值,分別為白天明亮、白天反白、白天反黑、黃昏、夜晚。局部圖分別如圖6~圖10所示。
圖6 白天明亮顏色模式
圖7 白天反白顏色模式
圖8 白天反黑顏色模式
圖9 黃昏顏色模式
3.2.4 顯示物標(biāo)類型的設(shè)計(jì)
通過調(diào)用接口函數(shù)void SetDisplayCategory(Int16 dspCtgry),顯示系統(tǒng)為用戶提供了三種S-52標(biāo)準(zhǔn)的顯示物標(biāo)類型,參數(shù)dspCtgry為類型枚舉值,分別為基本、標(biāo)準(zhǔn)、全部。局部圖分別如圖11~圖13所示。
圖10 夜晚顏色模式
圖11 基本顯示類型
圖12 標(biāo)準(zhǔn)顯示類型
圖13 全部顯示類型
3.2.5 目標(biāo)顯示的設(shè)計(jì)
為了直觀地觀看目標(biāo)位置,可以通過接入AIS、ADS-B等設(shè)備,獲取目標(biāo)位置信息,通過調(diào)用Boolean AddOtherVessel()、Boolean SetOtherVesselCurrentInfo()、bool SetAisTargetType()函數(shù),添加目標(biāo)信息,最終由Boolean DrawMapsInScreen(Int32 hdc)函數(shù)在海圖顯示區(qū)域繪制出接收到的目標(biāo)。如圖14所示。
圖14 目標(biāo)顯示
3.2.6 自定義海圖編輯的設(shè)計(jì)
在用戶實(shí)際應(yīng)用中,會有關(guān)注的目標(biāo)點(diǎn)、隔離線、報(bào)警區(qū)域等。因此,海圖的自定義編輯同樣是一項(xiàng)不可或缺的重要功能,本系統(tǒng)采用貼圖方法以及MicroSoft提供的圖形設(shè)備接口GDI+中的Graphics類提供的DrawLine、DrawRectangle、DrawEllipse、DrawPolygon、DrawArc等方法,實(shí)現(xiàn)自定義的海圖編輯[5~6]。并將自定義編輯數(shù)據(jù)通過用戶索引保存在本端,在不同用戶調(diào)用時(shí)顯示各個(gè)用戶關(guān)注的編輯區(qū)。實(shí)現(xiàn)了個(gè)性化的定制功能[7~8]。
具體繪制效果如圖15所示。
圖15 海圖編輯效果
3.2.7 其它輔助功能的設(shè)計(jì)
YimaEnc組件功能完備,在上述功能設(shè)計(jì)的同時(shí),筆者也開發(fā)了以下幾種輔助功能,僅做簡要介紹。
1) 比例尺顯示:通過示意棒直觀顯示海圖比例尺,同時(shí)數(shù)字顯示當(dāng)前比例尺。
2) 水深顯示:對各個(gè)海域的水深值做標(biāo)注。
3) 圖庫管理:加載*.000格式的電子海圖。
4) 圖層管理:對181層S-57數(shù)據(jù)標(biāo)準(zhǔn)的圖層進(jìn)行篩選顯示。
5) 電子方位線:測量相對于某一固定點(diǎn)的任一位置的方位。
6) 距離測量:測量海圖上任意兩點(diǎn)之間的距離。
本文結(jié)合S-57、S-52海圖國際標(biāo)準(zhǔn),采用商用組件YimaEnc,設(shè)計(jì)和實(shí)現(xiàn)了電子海圖顯示系統(tǒng),對海圖數(shù)據(jù)結(jié)構(gòu)、顯示標(biāo)準(zhǔn)等特征進(jìn)行了分析,在開發(fā)實(shí)踐基礎(chǔ)上驗(yàn)證總結(jié)了電子海圖開發(fā)中的關(guān)鍵技術(shù)[9~10]。
同時(shí),也總結(jié)了幾點(diǎn)有待改進(jìn)及不足之處:
1) 顯示界面可進(jìn)一步美化。
2) 一些功能模塊有待實(shí)現(xiàn)組件化,以降低系統(tǒng)復(fù)雜性。
3) 下一步可考慮實(shí)現(xiàn)鷹眼、多窗口顯示功能。
4) 若功能需要,可進(jìn)行雷達(dá)視頻圖像疊加顯示功能的開發(fā)。
[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] 國際海道測量組織.電子海圖及其應(yīng)用系統(tǒng)國際規(guī)范和標(biāo)準(zhǔn)(S-57篇)[M].大連:大連海事大學(xué)出版社,1999:30-33.
[4] 國際海道測量組織.電子海圖及其應(yīng)用系統(tǒng)國際規(guī)范和標(biāo)準(zhǔn)(S-52篇)[M].北京:中國船舶工業(yè)總公司船舶系統(tǒng)工程部,1995:15-16.
[5] 楊平,任娟.基于DGI+的高質(zhì)量地圖實(shí)現(xiàn)方法[J].北京測繪,2007(2):13-15.
[6] 劉廠,郝燕玲,高峰.國際標(biāo)準(zhǔn)電子海圖系統(tǒng)關(guān)鍵技術(shù)研究[J].中國航海,2011(6):24-27.
[7] 王玉璽,李青元.電子海圖顯示與信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2010(4):47-49.
[8] 徐智,孫堯,徐繼晨.電子海圖漫游及放大技術(shù)研究[J].計(jì)算機(jī)工程,2000(6):11-12.
[9] 郝江凌,劉大禹,周連濱.關(guān)于S-57[J].世界海運(yùn),2005(12):47-48.
[10] 花文華,許兆新.基于組件技術(shù)的電子海圖顯示系統(tǒng)開發(fā)方法[J].應(yīng)用科技,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日
張振華,男,碩士,工程師,研究方向:裝備系統(tǒng)工程,電子海圖。王遠(yuǎn)斌,男,碩士,工程師,研究方向:艦載雷達(dá)設(shè)備研究,數(shù)據(jù)處理。葉玲,女,碩士,工程師,研究方向:雷達(dá)顯控設(shè)計(jì),雷達(dá)信號處理。
U666
10.3969/j.issn1672-9730.2015.02.026