国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

跨平臺(tái)地圖SVG標(biāo)圖方法研究

2011-06-07 01:34:48胡慶武龔書(shū)林
電光與控制 2011年11期
關(guān)鍵詞:標(biāo)圖跨平臺(tái)開(kāi)源

李 艷,胡慶武,龔書(shū)林

(1.長(zhǎng)安大學(xué)信息工程學(xué)院,西安 710064;2.武漢大學(xué)遙感信息工程學(xué)院,武漢 430079;3.武漢立得空間信息技術(shù)有限公司,武漢 430074)

0 引言

應(yīng)急指揮、多兵種聯(lián)合作戰(zhàn)或演習(xí)要求基于地圖一體化共享態(tài)勢(shì)。標(biāo)圖必須具有易讀性、可縮放性以及與平臺(tái)無(wú)關(guān)性,能在指揮中心、工作站和現(xiàn)場(chǎng)終端上快速傳遞、無(wú)縫交換和共享[1-2]。通常態(tài)勢(shì)圖標(biāo)圖方法有3種:一是使用位圖文件,但數(shù)據(jù)量大,支持縮放和旋轉(zhuǎn)易變形失真;二是建立標(biāo)圖符號(hào)模型,每一個(gè)標(biāo)圖符號(hào)由專門符號(hào)算法庫(kù)實(shí)現(xiàn),不利于標(biāo)圖人員擴(kuò)展標(biāo)圖符號(hào);三是使用SVG(Scalable Vector Graphic),以適應(yīng)以XML標(biāo)準(zhǔn)的網(wǎng)絡(luò)傳輸共享,符號(hào)擴(kuò)展容易,在很多標(biāo)圖系統(tǒng)中得到使用[3-7]。隨著網(wǎng)絡(luò)化地圖態(tài)勢(shì)標(biāo)圖和信息分發(fā)系統(tǒng)的不斷擴(kuò)展,各種嵌入式終端引入帶來(lái)了終端操作系統(tǒng)的多樣性,如WinCE、Windows Mobile、Palm OS、Symbian、Android、iPhone 等,給地圖標(biāo)圖技術(shù)提出了新的挑戰(zhàn)。地圖標(biāo)圖需要解決在各種桌面系統(tǒng)和移動(dòng)終端下跨平臺(tái)傳輸、顯示和交互的問(wèn)題,開(kāi)源Qt以其強(qiáng)大的功能、良好的可移植性成為一種被廣泛使用的圖形圖像開(kāi)發(fā)平臺(tái)[8-10]。本文提出了基于開(kāi)源Qt和SVG的跨平臺(tái)地圖標(biāo)圖方法。結(jié)合SVG和Qt特點(diǎn),提出了基于Qt的SVG結(jié)構(gòu)化標(biāo)圖符號(hào)描述模型,設(shè)計(jì)了基于開(kāi)源Qt的跨平臺(tái)SVG標(biāo)圖符號(hào)體系,進(jìn)一步提出了動(dòng)態(tài)標(biāo)圖方法,采用同一個(gè)標(biāo)圖內(nèi)核編譯了不同操作系統(tǒng)下的標(biāo)圖原型,解決了不同操作系統(tǒng)下地圖標(biāo)圖應(yīng)用,顯示效率和效果均能滿足智能應(yīng)用要求。

1 跨平臺(tái)地圖標(biāo)圖需求與Qt SVG

標(biāo)圖要解決兩方面問(wèn)題:一是跨部門快速網(wǎng)絡(luò)傳輸和交換;二是跨操作系統(tǒng)共享、表達(dá)和使用?;诮Y(jié)構(gòu)化XML的SVG是一種可縮放矢量圖形標(biāo)準(zhǔn),其擴(kuò)展性強(qiáng),易于交換,可解決標(biāo)圖在不同網(wǎng)絡(luò)環(huán)境中快速傳輸及在不同應(yīng)用系統(tǒng)中交換共享問(wèn)題[11]。對(duì)于不同終端中標(biāo)圖符號(hào)的共享與表達(dá),一般可設(shè)計(jì)不同操作系統(tǒng)下的支持類庫(kù),其結(jié)果是標(biāo)圖符號(hào)開(kāi)發(fā)、維護(hù)和使用不便。開(kāi)源Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面庫(kù),基于Qt構(gòu)建的應(yīng)用程序可部署在多個(gè)桌面和嵌入式設(shè)備上,而無(wú)需重寫源代碼;同時(shí),Qt是一個(gè)開(kāi)源的應(yīng)用程序框架,將Qt編譯框架和SVG標(biāo)準(zhǔn)相結(jié)合[11],可以解決地圖標(biāo)圖符號(hào)網(wǎng)絡(luò)化、跨平臺(tái)傳輸和共享問(wèn)題,這也是本文提出基于Qt和SVG相結(jié)合解決跨平臺(tái)標(biāo)圖技術(shù)途徑。Qt支持XML跨平臺(tái)解析,在Qt 4.1版本后通過(guò)一個(gè) Qt SVG模塊支持 SVG 1.1、SVG 1.2的解析,通過(guò)二維圖形模塊繪制,可實(shí)現(xiàn)對(duì)SVG支持,其實(shí)現(xiàn)邏輯如圖1所示。如圖1所示,Qt通過(guò)對(duì)其XML擴(kuò)展模塊Qt SVG來(lái)支持SVG解析,實(shí)現(xiàn)對(duì)SVG標(biāo)圖符號(hào)支持,然后利用Qt跨平臺(tái)繪圖模塊完成對(duì)SVG表征符號(hào)的繪制。

圖1 基于Qt的SVG支持實(shí)現(xiàn)邏輯Fig.1 Qt extension principle to support SVG

2 基于Qt的SVG標(biāo)圖設(shè)計(jì)

綜合SVG矢量圖形數(shù)據(jù)格式優(yōu)點(diǎn)和Qt跨平臺(tái)編譯能力,可利用QtSVG模塊設(shè)計(jì)地圖標(biāo)圖符號(hào)體系,包括基于SVG的標(biāo)圖符號(hào)數(shù)據(jù)組織存儲(chǔ)和基于Qt的標(biāo)圖符號(hào)操作。

2.1 基于SVG的標(biāo)圖數(shù)字組織存儲(chǔ)

采用SVG 1.2格式存儲(chǔ)每個(gè)標(biāo)圖符號(hào),每個(gè)SVG文件代表一個(gè)符號(hào),常規(guī)的標(biāo)圖符號(hào)采用標(biāo)準(zhǔn)SVG格式,非常規(guī)標(biāo)圖符號(hào)采用擴(kuò)展SVG格式存儲(chǔ),SVG文件按標(biāo)圖編碼命名。SVG標(biāo)圖符號(hào)的數(shù)據(jù)模型如圖2所示。

圖2 SVG標(biāo)圖符號(hào)數(shù)據(jù)模型Fig.2 Data model of SVG based on map plotting symbol

每一個(gè)標(biāo)圖符號(hào)可按照?qǐng)D2所示的SVG物理模型定義其標(biāo)準(zhǔn)狀態(tài),包括符號(hào)尺寸、可見(jiàn)性、填充和符號(hào)中圖元對(duì)象。圖3給出了基于SVG格式定義的一組典型的標(biāo)圖符號(hào)(海軍(點(diǎn))、進(jìn)攻方向(線)和配置區(qū)域(面))顯示效果。

圖3 不同類型的標(biāo)圖符號(hào)Fig.3 Different types of map plotting symbol

標(biāo)圖文檔同樣按照XML格式自定義組織,為了提高解析效率,每一個(gè)標(biāo)圖文檔中包含的標(biāo)圖符號(hào)通過(guò)編碼區(qū)分,一個(gè)標(biāo)圖文檔可以按照如下示例格式定義。

其中,Items結(jié)點(diǎn)存儲(chǔ)當(dāng)前文檔包含所有標(biāo)圖對(duì)象列表,Item結(jié)點(diǎn)存儲(chǔ)每個(gè)標(biāo)圖符號(hào)對(duì)象,其屬性包括code(標(biāo)圖符號(hào)編碼)、x&y(標(biāo)注坐標(biāo))、scale(符號(hào)縮放參數(shù))、rotation(符號(hào)旋轉(zhuǎn)角度)。每一個(gè)Item對(duì)應(yīng)一個(gè)CPlottingPointItem或者CPlottingLineItem實(shí)體對(duì)象。

標(biāo)圖符號(hào)制作可在支持SVG文檔編輯的二維矢量制圖軟件中完成,通??刹捎肁utoCAD、SVGDeveloper等軟件工具。

2.2 基于Qt的標(biāo)圖符號(hào)操作

Qt SVG模塊可實(shí)現(xiàn)標(biāo)圖符號(hào)的加載、顯示和編輯操作,其中標(biāo)圖符號(hào)編輯功能包括標(biāo)圖符號(hào)的增、刪、改、縮放、旋轉(zhuǎn)等。實(shí)際上,Qt平臺(tái)下地圖標(biāo)圖符號(hào)直接繼承GDI+繪制機(jī)制,利用Qt對(duì)GDI+的跨平臺(tái)編譯能力實(shí)現(xiàn)在此框架上的標(biāo)圖操作。一個(gè)基于Qt的標(biāo)圖符號(hào)組件包含兩層結(jié)構(gòu):一是數(shù)據(jù)交互層,實(shí)現(xiàn)標(biāo)圖符號(hào)存取;二是用戶交互層,提供用戶編輯交互接口,包括鼠標(biāo)和鍵盤操作,并將用戶編輯結(jié)果保存,其對(duì)象體系如圖4所示。

圖4 基于Qt的標(biāo)圖操作對(duì)象體系Fig.4 Object architecture of map plotting operation based on Qt

圖4中,CPlottingDocument對(duì)象實(shí)現(xiàn)標(biāo)圖文檔管理,CSvgItem對(duì)象完成標(biāo)圖SVG文件及XML文檔解析及繪制,CPlottingItem對(duì)象繼承于Qt的QGraphicsSvgItem,實(shí)現(xiàn)標(biāo)圖編輯。

3 動(dòng)態(tài)標(biāo)圖實(shí)現(xiàn)技術(shù)

動(dòng)態(tài)標(biāo)圖對(duì)于豐富標(biāo)圖形式、提高標(biāo)圖效果和擴(kuò)展標(biāo)圖應(yīng)用非常有效。采用SVG組織的標(biāo)圖符號(hào)可利用Qt的圖形顯示框架實(shí)現(xiàn)在不同平臺(tái)中的標(biāo)圖動(dòng)態(tài)推演,其基本原理是利用Qt提供的QGraphicsItem-Animationhes對(duì)象與SVG標(biāo)圖符號(hào)關(guān)聯(lián),該對(duì)象具有改變位置、旋轉(zhuǎn)、尺寸縮放和裁剪等方法,允許以時(shí)間線方式讓動(dòng)畫(huà)在視圖上以一個(gè)穩(wěn)定的速度操作。本文提出可采用Qt中時(shí)間觸發(fā)管理對(duì)象QTimeLine來(lái)控制動(dòng)畫(huà)時(shí)間參數(shù)。為了實(shí)現(xiàn)以上標(biāo)圖動(dòng)畫(huà)過(guò)程,本文基于開(kāi)源Qt提供的圖形顯示框架在開(kāi)源Qt的基礎(chǔ)上擴(kuò)展一個(gè)CSvgAnimation對(duì)象,該對(duì)象繼承于QgraphicsItemAnimationhes對(duì)象,但根據(jù)與時(shí)間控制對(duì)象的結(jié)合重寫相應(yīng)接口,具備了特定動(dòng)畫(huà)幀管理方實(shí)現(xiàn)標(biāo)圖符號(hào)的動(dòng)畫(huà)播放,達(dá)到動(dòng)態(tài)標(biāo)圖目的。如圖5所示為線狀標(biāo)圖動(dòng)態(tài)推演流程圖。

圖5 標(biāo)圖符號(hào)動(dòng)態(tài)推演流程圖Fig.5 Dynamic deduction flow chart of map plotting

4 實(shí)驗(yàn)結(jié)果分析

為驗(yàn)證基于開(kāi)源Qt的跨平臺(tái)標(biāo)圖技術(shù)合理性,以本文設(shè)計(jì)的標(biāo)圖符號(hào)模型在SVGDeveloper軟件中設(shè)計(jì)了238種標(biāo)圖符號(hào)。以開(kāi)源Qt 4.1.5版本源代碼為基礎(chǔ),以本文提出的標(biāo)圖技術(shù)和符號(hào)體系分別編譯了Qt for WindowsXP和 Qt for Windows Mobile 5.0兩套執(zhí)行程序。如圖6所示為兩套軟件導(dǎo)入同樣標(biāo)圖文檔和地圖數(shù)據(jù)運(yùn)行效果。

圖6 不同平臺(tái)下的標(biāo)圖效果Fig.6 Map plotting result of different operation systems

由圖6可見(jiàn),本文提出的標(biāo)圖符號(hào)技術(shù)能夠適應(yīng)不同的操作系統(tǒng)平臺(tái),并且與標(biāo)圖系統(tǒng)顯示界面的配置無(wú)關(guān),充分體現(xiàn)了SVG共享交換特點(diǎn)和開(kāi)源Qt的跨平臺(tái)編譯能力,具有較好的通用性。在這種體系下,地圖標(biāo)圖可以在不同的桌面系統(tǒng)和移動(dòng)終端間進(jìn)行傳輸、顯示和交互,無(wú)需單獨(dú)的符號(hào)庫(kù)支持,只需通過(guò)標(biāo)圖編碼即可實(shí)現(xiàn)標(biāo)圖意圖的共享,降低了在不同系統(tǒng)間共享信息的安全性和對(duì)通信網(wǎng)絡(luò)的要求。

圖7給出了基于本文動(dòng)態(tài)標(biāo)圖技術(shù)實(shí)現(xiàn)的標(biāo)圖推演中3個(gè)關(guān)鍵幀效果。

圖7 動(dòng)態(tài)標(biāo)圖推演效果Fig.7 Deduction result of dynamic map plotting

由圖7可見(jiàn),本文設(shè)計(jì)的動(dòng)態(tài)標(biāo)圖技術(shù)充分利用了Qt的二維動(dòng)畫(huà)圖形框架和Qt對(duì)時(shí)間的控制管理,SVG標(biāo)圖能夠按照設(shè)計(jì)的推演路徑平滑運(yùn)動(dòng),并且可以利用SVG文件中初始旋轉(zhuǎn)矩陣與路徑矢量進(jìn)行矩陣變換,實(shí)現(xiàn)了在推演過(guò)程中不同狀態(tài)參數(shù)的設(shè)置和顯示。

5 結(jié)論

SVG以其不斷完善的標(biāo)準(zhǔn)使得標(biāo)圖符號(hào)的表達(dá)規(guī)范具有結(jié)構(gòu)性、完備性等特點(diǎn),為標(biāo)圖符號(hào)的網(wǎng)絡(luò)共享和互操作提供一個(gè)基礎(chǔ)解決方案。開(kāi)源Qt為標(biāo)圖系統(tǒng)的跨平臺(tái)編譯應(yīng)用提供了支持環(huán)境,本文將開(kāi)源Qt和SVG相結(jié)合,提出了一種面向多形式網(wǎng)絡(luò)環(huán)境下標(biāo)圖技術(shù),該方法通過(guò)跨平臺(tái)SVG標(biāo)圖技術(shù)實(shí)現(xiàn)地圖標(biāo)圖在不同桌面操作系統(tǒng)和移動(dòng)終端間的傳輸、顯示進(jìn)而交互,只需通過(guò)標(biāo)圖編碼即可實(shí)現(xiàn)標(biāo)圖意圖的共享,對(duì)于利用標(biāo)圖進(jìn)行指揮與響應(yīng)信息的快速分發(fā)、共享和應(yīng)用提供了技術(shù)手段,有利于多終端網(wǎng)絡(luò)標(biāo)圖系統(tǒng)標(biāo)圖操作、擴(kuò)展和軟件系統(tǒng)的維護(hù),可有效地提高標(biāo)圖信息的安全性,降低標(biāo)圖意圖傳遞的網(wǎng)絡(luò)要求,對(duì)于提高標(biāo)圖能力和擴(kuò)展標(biāo)圖應(yīng)用具有較高的實(shí)用價(jià)值。

[1]胥少卿,路建偉,錢葉魁,等.基于SVG的戰(zhàn)術(shù)標(biāo)圖系統(tǒng)設(shè)計(jì)與研究[J].電光與控制,2006,13(2):101-104.

[2]巨亞榮,劉小兵.SVG技術(shù)在軍事標(biāo)圖中的應(yīng)用研究[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版,2008,10(3):118-120.

[3]JIANG Lili,QI Qingwen ,ZHANG An.The thematic mapping system on internet[C]//Proceeding of 18th International Conference on Geoinformatics,Beijing,2010:1-4.

[4]趙恩來(lái),郝文寧,趙水寧,等.改進(jìn)的基于密度方法的態(tài)勢(shì)聚類顯示算法[J].計(jì)算機(jī)工程,2010,36(18):35-37.

[5]尹章才,李霖,朱海紅,等.基于SVG的地圖符號(hào)描述模型研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2004,29(6):544-547.

[6]王錚,李霖.基于SVG的面狀地圖符號(hào)設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2007,32(3):169-170.

[7]周文生.基于SVG的WebGIS研究[J].中國(guó)圖像圖形學(xué)報(bào),2002,7(7):693-698.

[8]趙毅,游有鵬.基于Qt/Embedded的嵌入式數(shù)控系統(tǒng)人機(jī)界面設(shè)計(jì)與開(kāi)發(fā)[J].工業(yè)控制計(jì)算機(jī),2008,21(4):68-71.

[9]宋榮.基于Qt/Embedded的嵌入式系統(tǒng)GUI開(kāi)發(fā)[J].機(jī)電工程,2009,26(4):90-93.

[10]DAL HEIMER M K,HANSEN S.Embedded development with Qt/embedded [J].Dr.Dobbps Journal,2002,27(3):48-53.

[11]DELALANDRE M,HéROUX P,ADAM S ,et al.A statistical and structural approach for symbol recognition using XML modeling[J].Lecture Notes in Computer Science,2002,2396:201-238.

猜你喜歡
標(biāo)圖跨平臺(tái)開(kāi)源
重磅!廣東省“三舊”改造標(biāo)圖入庫(kù)標(biāo)準(zhǔn)正式發(fā)布!
從技能生成規(guī)律入手優(yōu)化作戰(zhàn)標(biāo)圖技能訓(xùn)練方法
西部論叢(2020年2期)2020-10-21 09:27:54
五毛錢能買多少頭牛
跨平臺(tái)APEX接口組件的設(shè)計(jì)與實(shí)現(xiàn)
補(bǔ)孔井標(biāo)圖校深問(wèn)題分析
大家說(shuō):開(kāi)源、人工智能及創(chuàng)新
開(kāi)源中國(guó)開(kāi)源世界高峰論壇圓桌會(huì)議縱論開(kāi)源與互聯(lián)網(wǎng)+創(chuàng)新2.0
開(kāi)源計(jì)算機(jī)輔助翻譯工具研究
開(kāi)源計(jì)算機(jī)輔助翻譯工具研究
基于QT的跨平臺(tái)輸電鐵塔監(jiān)控終端軟件設(shè)計(jì)與實(shí)現(xiàn)
潮安县| 商洛市| 江山市| 莱西市| 大丰市| 垦利县| 根河市| 斗六市| 江西省| 子长县| 苏尼特右旗| 固原市| 齐齐哈尔市| 平罗县| 英山县| 赣榆县| 庆云县| 独山县| 茌平县| 铁岭县| 杭锦后旗| 乌鲁木齐县| 延寿县| 大同县| 木里| 修文县| 恩施市| 宁河县| 清远市| 宁阳县| 夏河县| 阳谷县| 安国市| 恩平市| 巍山| 宁化县| 大新县| 石渠县| 龙陵县| 彝良县| 衡东县|