• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      電子海圖文件的讀取與顯示程序開發(fā)

      2012-02-20 08:49:46張靜雙
      裝備制造技術(shù) 2012年6期
      關(guān)鍵詞:函數(shù)庫程序開發(fā)海圖

      張靜雙

      (天津機(jī)電職業(yè)技術(shù)學(xué)院 機(jī)械系,天津300131)

      電子海圖是一個(gè)籠統(tǒng)的概念,大致可以分成兩個(gè)部分,一部分是電子海圖數(shù)據(jù),另一部是在電子海圖的基礎(chǔ)上開發(fā)的各種應(yīng)用,簡單來說電子海圖就是特制的電子海圖數(shù)據(jù),復(fù)雜來說,電子海圖這個(gè)概念是包含各種與電子海圖相關(guān)聯(lián)的設(shè)備軟件或者硬件技術(shù)的一個(gè)總稱,并且包含了電子海圖數(shù)據(jù)。電子海圖的出現(xiàn)和完善對(duì)提高船舶航行安全、減輕船舶工作量的作用也越來越明顯。

      1 電子海圖的定義

      電子海圖是指描寫海域地理信息和航海圖的數(shù)字化產(chǎn)品,是數(shù)字海圖的一種,通過將紙質(zhì)海圖信息經(jīng)過數(shù)字化處理后,形成一個(gè)電子海圖數(shù)據(jù)庫。具有攜帶方便、容易保存的優(yōu)點(diǎn),其主要內(nèi)容是以海域要素為主,詳細(xì)的表示河道或者海底的地形,航道上的障礙物,燈塔導(dǎo)航標(biāo)志等要素。電子海圖一般是由國家官方權(quán)威海道測量機(jī)構(gòu)提供,這些機(jī)構(gòu)同時(shí)還負(fù)責(zé)電子海圖的更新與修正,以保證電子海圖的準(zhǔn)確性及時(shí)性。

      本文中所涉及到的電子海圖是與AutoCAD格式相兼容的DXF文件,通過特定的程序,讀寫電子海圖的DXF文件,通過將文件中的有用信息在PC系統(tǒng)的主界面中實(shí)時(shí)顯示,同時(shí)與配合GPS系統(tǒng)配合使用,從而實(shí)時(shí)顯示船體在運(yùn)動(dòng)過程中的實(shí)際位置,為船舶的航線航行提供準(zhǔn)確的參考信息。

      2 DXF文件的結(jié)構(gòu)

      DXF是美國Autodesk公司制定并首先用于AutoCAD的圖形交換的文件格式,它是一種基于矢量的ASCII格式,文件的擴(kuò)展名為“.DXF”,用于外部程序和圖形系統(tǒng)或不同的圖形系統(tǒng)之間交換圖形信息。由于它結(jié)構(gòu)簡單、可讀性好,易于被其他程序處理,因此已是事實(shí)上的工業(yè)標(biāo)準(zhǔn)。DXF是一種開放的矢量數(shù)據(jù)格式,可以分為兩類:ASCII格式和二進(jìn)制格式;ASCII具有可讀性好,但占有空間較大;二進(jìn)制格式占有空間小、讀取速度快。目前,絕大多數(shù)CAD系統(tǒng)都能讀入或輸出DXF文件

      DXF文件雖然看上去結(jié)構(gòu)復(fù)雜,但由于其數(shù)據(jù)具有嚴(yán)格的存儲(chǔ)格式,各種實(shí)體都以編碼標(biāo)出,因此可以較容易的讀懂它,而且還可以提取所需的所有信息。在用高級(jí)語言編寫接口程序時(shí),由于DXF文件有較嚴(yán)格的規(guī)定,所以必須清楚的了解DXF文件的結(jié)構(gòu)。

      一個(gè)完整的DXF文件主要由四個(gè)段和一個(gè)文件結(jié)尾組成。它們是:標(biāo)題(HEADER)段、表(TABLES)段、塊(BLOCKS)段、實(shí)體(ENTITIES)段、結(jié)尾(EOF)段。DXF文件的每一個(gè)段由若干個(gè)組構(gòu)成,每個(gè)組占兩行,第一行為組的代碼,第二行為組值。組代碼相當(dāng)于數(shù)據(jù)類型的代碼,它由CAD圖形系統(tǒng)所規(guī)定,而組值為具體的數(shù)值,二者結(jié)合起來表示一個(gè)數(shù)據(jù)的含義和值。DXF文件各段主要內(nèi)容如下:

      (1)標(biāo)題(HEADER)段 該段記錄了AutoCAD系統(tǒng)所有標(biāo)題變量的當(dāng)前值或當(dāng)前狀態(tài)。這些標(biāo)題變量記錄了AutoCAD系統(tǒng)當(dāng)前工作環(huán)境。例如,Auto-CAD的版本號(hào)、插入基點(diǎn)、柵格間距、式樣、當(dāng)前圖層名、當(dāng)前線型、當(dāng)前額色等。

      (2)類(CLASSES)段 保存應(yīng)用程序定義的類的信息。

      (3)表(TABLES)段 表段包含了四種表,每個(gè)表又包含了可變數(shù)目的表項(xiàng)。按照這些表在文件中出現(xiàn)的順序是線型(LTYPE)表、圖層(LAYER)表、字樣(STYLE)表、視圖(VIEW)表。這些表記錄了當(dāng)前圖形編輯的支撐環(huán)境。

      (4)塊(BLOCKS)段 塊段記錄了定義每一個(gè)塊的塊名、當(dāng)前圖層名、塊的種類、塊的插入基點(diǎn)及組成該塊的所有成員。

      (5)實(shí)體(ENTITIES)段 該段定義了每個(gè)實(shí)體的種類,所有圖層名、顏色、線型、厚度、實(shí)體描述字及有關(guān)的幾何數(shù)據(jù)。

      (6)對(duì)象(OBJECT)段 記錄了包含非傳統(tǒng)的繪圖對(duì)象的一些非實(shí)體的符號(hào)信息。

      (7)文件結(jié)束(EOF)。

      DXF文件的結(jié)構(gòu)相當(dāng)復(fù)雜,完整讀取DXF文件也是一項(xiàng)異常繁瑣的工程.在實(shí)際應(yīng)用中,為了提取圖形的實(shí)體信息,可以省略DXF文件中的許多項(xiàng),只要獲取其中的層表,塊段和實(shí)體段,就可以完成相應(yīng)幾何圖形的描述.在層表中說明每一層的顏色,線型,在塊段中說明塊所在的層,屬性及其在圖形中的位置,在實(shí)體段中說明直線的起點(diǎn),終點(diǎn)及圓的圓心,半徑等幾何信息和各實(shí)體所在的層.根據(jù)實(shí)體所在的層,在層表中搜索每一層的顏色,線型并將其添加到實(shí)體對(duì)象中.

      3 電子海圖程序讀寫方法及流程

      3.1 讀寫程序開發(fā)方法

      目前有兩種可以實(shí)現(xiàn)DXF格式文件的讀寫。一種是使用OpenDWG函數(shù)庫,OpenDWG函數(shù)庫是一個(gè)能直接訪問DXF文件的靜態(tài)連接函數(shù)庫,是由一些對(duì)DWG文件有研究的一些公司和個(gè)人組成的團(tuán)體開發(fā)的,具有完善的讀寫DXF文件的接口函數(shù)。二是用戶自主開發(fā)讀寫程序,這種方法是根據(jù)DXF文件基本結(jié)構(gòu)并結(jié)合實(shí)際需要,舍去一些DXF文件中可對(duì)顯示關(guān)系不大的信息,只顯示跟電子海圖文件相關(guān)聯(lián)的部分。具有一定的靈活性。

      兩種方法相比第一種使用OpenDWG函數(shù)庫缺點(diǎn)比較明顯,此函數(shù)庫不是免費(fèi)使用的,功能相對(duì)固定,如要實(shí)現(xiàn)實(shí)時(shí)顯示,方法復(fù)雜,而且成本很高。而第二種方法則具有相當(dāng)?shù)撵`活性,而且成本較低。考慮到開發(fā)成本及應(yīng)用的靈活性,本設(shè)計(jì)采用第二種方法開發(fā)DXF文件的讀寫程序。

      電子海圖讀寫模塊在電子導(dǎo)航軟件中是相對(duì)獨(dú)立的模塊,本文采用基于Windows程序設(shè)計(jì)的動(dòng)態(tài)鏈接庫開發(fā)此模塊。這樣在建立應(yīng)用程序的可執(zhí)行文件時(shí),不必將庫中的代碼拷貝到可執(zhí)行文件中,而是運(yùn)行時(shí)動(dòng)態(tài)加載動(dòng)態(tài)鏈接庫DLL(Dynamic Link Library),裝載的DLL被映射到進(jìn)程地址空間中。使用動(dòng)態(tài)鏈接庫可以減少內(nèi)存資源的浪費(fèi),同時(shí)可提高程序的可讀性、維護(hù)性及保密性。

      具體使用方法是在讀寫并顯示海圖時(shí),在主程序中加載讀寫DXF文件動(dòng)態(tài)鏈接庫接口函數(shù)的入口地址,定義相關(guān)的調(diào)用動(dòng)態(tài)鏈接庫的C++類,通過對(duì)類的對(duì)象的函數(shù)調(diào)用,即可實(shí)現(xiàn)電子海圖在主界面中的實(shí)時(shí)顯示。

      3.2 DXF文件程序開發(fā)框圖

      根據(jù)DXF文件的格式,電子海圖讀寫模塊程序框圖如圖1所示,可以以此框圖為基礎(chǔ)完成DXF接口程序的開發(fā)。

      圖1 DXF文件讀寫模塊流程圖

      4 海圖圖元坐標(biāo)的轉(zhuǎn)換

      電子海圖的DXF文件是以大地坐標(biāo)系下的海平面坐標(biāo)為基準(zhǔn)繪制的圖形文件,但是在計(jì)算機(jī)屏幕上顯示電子海圖時(shí),屏幕上顯示使用的是顯示器設(shè)備的坐標(biāo),因此為了能讓設(shè)備屏幕上正常的顯示電子海圖信息,需要在編寫電子海圖顯示程序時(shí)解決實(shí)現(xiàn)海平面基準(zhǔn)的坐標(biāo)系轉(zhuǎn)換到設(shè)備使用的坐標(biāo)系的問題,為了實(shí)現(xiàn)這個(gè)功能,需要在在程序中定義坐標(biāo)轉(zhuǎn)換的宏,實(shí)現(xiàn)邏輯坐標(biāo)到設(shè)備坐標(biāo)的轉(zhuǎn)換。

      通過程序的實(shí)際調(diào)試和運(yùn)行證明,這種轉(zhuǎn)換方法可以正確的實(shí)現(xiàn)海圖的顯示,并能實(shí)現(xiàn)電子海圖與航道航線、DGPS定位坐標(biāo)的正確匹配。

      5 結(jié)論

      本文所介紹的航道電子海圖文件程序開發(fā)方法采用庫文件讀取DXF海圖文件的方法,實(shí)際操作時(shí)應(yīng)用調(diào)用定義在類中的DXF文件讀寫函數(shù)的方法實(shí)現(xiàn)對(duì)電子海圖的讀寫操作。同時(shí)通過宏定義的方式實(shí)現(xiàn)電子海圖在屏幕顯示時(shí)存在屏幕坐標(biāo)與邏輯坐標(biāo)轉(zhuǎn)換問題,實(shí)際運(yùn)行表明,本程序開發(fā)方法是實(shí)用可靠的。

      [1]史國有.基于GPS和電子海圖的船舶導(dǎo)航與監(jiān)控系統(tǒng)[J].中國航海,2003.

      [2]Kang H.I,Watermarking techniques using the drawing exchange format(DXF),file,Proceedings of the ACM International Multimedia Conference and Exhibition,2001.

      [3]李宏利,李漢榮.數(shù)字地球模式下的電子海圖應(yīng)用[M].海洋測繪,2004.

      [4]吳震亞.基于電子海圖的船舶調(diào)度管理系統(tǒng)[M].航海技術(shù),2003.

      [5]趙麗寧,郝江凌.電子海圖導(dǎo)航系統(tǒng)多設(shè)備接口動(dòng)態(tài)鏈接庫的開發(fā)[M].大連海事學(xué)報(bào),2003.

      [6]電子海圖及其應(yīng)用系統(tǒng)國際規(guī)范和標(biāo)準(zhǔn)(S-57篇)[M].中華人民共和國海事局.

      [7]許兆新,方 明,徐 婧.基于國際標(biāo)準(zhǔn)的電子海圖顯示系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2005,33(9):23-25.

      [8]張英俊,蘇本征.ECDIS中系統(tǒng)電子海圖的設(shè)計(jì)[J].世界海運(yùn).1999,22(1):15-17.

      [9]許開宇.符合國際標(biāo)準(zhǔn)的電子海圖顯示和信息系統(tǒng)(ECDIS)[J].船舶工程.1999(5):53-55.

      [10]徐 婧,基于國際標(biāo)準(zhǔn)電子海圖顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[碩士論文],哈爾濱工程大學(xué),2005.

      猜你喜歡
      函數(shù)庫程序開發(fā)海圖
      用于優(yōu)化雷達(dá)信號(hào)處理的VSIPL函數(shù)庫
      基于Python的開源GIS應(yīng)用開發(fā)
      Scratch求最值和平均值
      紙海圖AI小改正制作模式探討
      航海(2020年4期)2020-08-17 16:13:40
      APP應(yīng)用程序開發(fā)模式探究
      電子制作(2019年19期)2019-11-23 08:42:02
      基于BB60C的IQ數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
      少林功夫拳(三)
      少林與太極(2018年9期)2018-09-28 08:37:34
      基于TestStand的自動(dòng)檢測程序開發(fā)
      電子測試(2018年11期)2018-06-26 05:56:16
      基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
      基于App inventor 2手機(jī)程序開發(fā)過程的學(xué)習(xí)與實(shí)——以“喵喵定時(shí)器”APP開發(fā)為例
      電子制作(2017年1期)2017-05-17 03:54:08
      揭阳市| 平南县| 珠海市| 丰城市| 济阳县| 广饶县| 临泉县| 平度市| 谢通门县| 玉田县| 满城县| 张家口市| 巴东县| 临澧县| 三门县| 柘城县| 通州市| 饶平县| 白城市| 额敏县| 天气| 库伦旗| 二连浩特市| 密山市| 娱乐| 浙江省| 虹口区| 房产| 涿州市| 会泽县| 繁峙县| 德昌县| 仁布县| 元谋县| 万盛区| 曲松县| 定陶县| 万宁市| 兴国县| 商丘市| 明光市|