王玉璽 丁 琰 肖沖沖
(中船航??萍加邢挢熑喂?北京 100070)
與紙海圖相比,基于數(shù)字海圖的應(yīng)用系統(tǒng)具有航行自動監(jiān)控及報警、航跡自動存儲、歷史軌跡回放、海圖信息快速查詢以及船舶狀態(tài)自動顯示等優(yōu)點。盡管我國海道測量機構(gòu)已經(jīng)發(fā)布了符合國際標準(S-57標準)的電子海圖,但是在特定領(lǐng)域仍然以MVCF數(shù)字海圖數(shù)據(jù)為主且存在少數(shù)使用MapInfo數(shù)字海圖數(shù)據(jù)的情況,本文在深入研究了MapInfo數(shù)字海圖和MVCF數(shù)字海圖數(shù)據(jù)結(jié)構(gòu)和要素編碼的基礎(chǔ)上,提出了從MapInfo海圖數(shù)據(jù)向MVCF海圖數(shù)據(jù)的轉(zhuǎn)換方法,以滿足特定領(lǐng)域支持MVCF格式電子海圖數(shù)據(jù)的電子海圖應(yīng)用軟件使用MapInfo數(shù)字海圖的需求。
MapInfo數(shù)據(jù)采用層次結(jié)構(gòu)組織空間數(shù)據(jù),根據(jù)不同的專題將海圖分層,每個圖層存儲為若干個數(shù)據(jù)文件[1~4]。
1)空間數(shù)據(jù)文件(.MAP):該文件存儲海圖要素的幾何類型、坐標信息和顏色信息等空間數(shù)據(jù)以及與該要素對應(yīng)的屬性數(shù)據(jù)記錄在屬性數(shù)據(jù)文件(.DAT)中的記錄號。
2)屬性數(shù)據(jù)文件(.DAT):該文件存儲海圖要素屬性數(shù)據(jù),以表結(jié)構(gòu)描述。
3)屬性數(shù)據(jù)的表結(jié)構(gòu)文件(.TAB):該文件定義了要素屬性數(shù)據(jù)的表結(jié)構(gòu),包括字段數(shù)、字段名稱、字段類型和字段寬度、索引字段等信息。
4)交叉索引文件(.ID):該文件存儲要素在空間數(shù)據(jù)文件(.MAP)中的位置指針。
5)索引文件(.IND):該文件是可選的,對于部分字段建立索引。
本文提及的MapInfo海圖數(shù)據(jù)根據(jù)要素內(nèi)容(水系、居民地、獨立地物等)和要素類型(圖形、地名)進行分層,圖層名稱定義分別采用“圖號+要素內(nèi)容+圖形”和“圖號+要素內(nèi)容+地名”的方式表示。
MVCF海圖共有19個專題層,包括海洋/陸地(OCLD)、測量控制點(CTRL)、陸地方位物(LDMK)、地貌(RELF)等17個要素專題層和資料檔案、圖幅索引等2個特殊專題層。由于海圖要素幾何特征不同,在專題層基礎(chǔ)上,將專題層分為一個或多個要素層做為數(shù)字化層,每個專題層分為一個或多個數(shù)字化層,共分為29個數(shù)字化層[5~6]。
MVCF海圖要素編碼在數(shù)字海圖數(shù)據(jù)字典中規(guī)定,包括類碼和識別碼,由6位數(shù)字組成[7]。
1)類碼
類碼表示海圖要素的類別,根據(jù)航海使用需求和便于計算機數(shù)據(jù)管理,將海圖要素分為14類,用3位數(shù)字表示。其中,第1位數(shù)字和第2位數(shù)字唯一地定義海圖要素的主類,第3位數(shù)字定義主類下的亞類,亞類的具體定義是按照不同性質(zhì)或不同用途進行劃分的。如類碼51X表示測量控制點類,類碼52X表示自然地理要素類,類碼53X表示人工地物類等。
2)識別碼
識別碼唯一地定義某一類下具體地海圖要素,用3位數(shù)字表示。由于海圖要素幾何特征不同,可能表現(xiàn)為點、線、面類型。根據(jù)要素幾何特征,將識別碼劃分為3段,分別表示點、線、面要素識別碼。如001~099為點要素編碼;100~199為線要素編碼;200~299為面要素編碼。
MVCF海圖數(shù)據(jù)每幅圖包含一個元數(shù)據(jù)文件,文件名為map.rec,用于記錄每幅圖的控制信息,由23個數(shù)據(jù)項組成,每項數(shù)據(jù)為一行,以文本文件方式存儲。讀取MapInfo數(shù)據(jù)文件時,將圖號、圖名、投影方式、基準緯度等圖幅元數(shù)據(jù)信息寫入map.rec元數(shù)據(jù)文件[8]。
分別建立MapInfo數(shù)據(jù)與MVCF數(shù)據(jù)間的圖層對應(yīng)關(guān)系表、要素編碼對應(yīng)關(guān)系表以及要素屬性表等文件,均采用計算機軟件可識別的結(jié)構(gòu)化語言組織,便于實現(xiàn)轉(zhuǎn)換程序的自動化處理。
1)圖層對應(yīng)關(guān)系表
根據(jù)MapInfo數(shù)據(jù)圖層命名規(guī)則和MVCF數(shù)據(jù)分層命名規(guī)則,建立MapInfo數(shù)據(jù)圖層與MVCF數(shù)據(jù)圖層的對應(yīng)關(guān)系表。由于MapInfo數(shù)據(jù)一個圖層可包含不同類型的圖形對象,而MVCF數(shù)據(jù)一個圖層只能包括同種類型的圖像對象,因此一個MapInfo數(shù)據(jù)圖層可能對應(yīng)多個MVCF數(shù)據(jù)圖層。部分圖層對應(yīng)關(guān)系如表1所示。
表1 圖層對應(yīng)關(guān)系表
2)要素編碼對應(yīng)表
參考MVCF數(shù)字海圖數(shù)據(jù)字典,將MapInfo數(shù)據(jù)中的海圖要素與MVCF數(shù)據(jù)海圖要素編碼進行一一對應(yīng)。部分要素編碼對應(yīng)關(guān)系如表2所示。
表2 要素編碼對應(yīng)關(guān)系表
3)MVCF海圖數(shù)據(jù)屬性表
根據(jù)MVCF數(shù)字海圖數(shù)據(jù)交換格式標準規(guī)定,將每個圖層的附加屬性項信息結(jié)構(gòu)化存儲,用于在從MapInfo數(shù)據(jù)向MVCF數(shù)據(jù)轉(zhuǎn)換過程中,建立數(shù)據(jù)圖層的屬性字段信息。
MVCF數(shù)據(jù)空間坐標采用圖上坐標表示,以厘米為單位。因此,首先將MapInfo數(shù)據(jù)經(jīng)緯度坐標轉(zhuǎn)化為墨卡托投影坐標,然后再將投影坐標轉(zhuǎn)化為圖上坐標[9~12]。
1)經(jīng)緯度坐標轉(zhuǎn)換為投影坐標
以零子午線或自定義原點經(jīng)線(L0)與赤道交點的投影為原點,零子午線或自定義原點經(jīng)線的投影為縱坐標X軸,赤道的投影為橫坐標Y軸,構(gòu)成墨卡托平面直角坐標系。
墨卡托投影正解公式:(B,L)→(XE,YN),標準緯度B0,原點緯度NB0,原點經(jīng)度L0。計算公式如式(1)所示,e表示自然常數(shù),π表示圓周率。
其中,投影坐標(XE,YN)的單位是米。
2)投影坐標轉(zhuǎn)化為圖上坐標
假設(shè)紙海圖圖幅的左下角的經(jīng)緯度是(BLB,LLB),紙海圖比例尺分母是scale,則根據(jù)式(1)中的墨卡托投影正解公式,該點的投影平面坐標是(XLB,YLB)。由此,海圖要素圖上坐標的計算公式如式(2)所示:
其中,圖上坐標(Xm,Ym)的單位是厘米。
MVCF數(shù)據(jù)將所有注記類要素集中存儲于注記層(ANNCOV)中,而在MapInfo數(shù)據(jù)中注記信息是分為多個圖層管理的,因此需將MapInfo數(shù)據(jù)的所有注記信息圖層全部轉(zhuǎn)換到MVCF注記層中。
本文通過對MapInfo數(shù)字海圖和MVCF數(shù)字海圖數(shù)據(jù)結(jié)構(gòu)和要素編碼的深入分析,建立了二者之間的圖層、要素類型及要素編碼的對應(yīng)關(guān)系,實現(xiàn)了從MapInfo海圖數(shù)據(jù)向MVCF海圖數(shù)據(jù)的轉(zhuǎn)換,滿足MVCF電子海圖應(yīng)用軟件對MapInfo數(shù)字海圖的使用需求。