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

?

基于WPF的GIS組件的研究與開發(fā)

2010-08-07 08:20:48陳晨李健張濤
關(guān)鍵詞:開發(fā)人員繪制組件

陳晨 李健 張濤

北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 北京 100124

0 前言

地理信息系統(tǒng)(Geographic Information System,GIS)是一種基于計(jì)算機(jī)的工具,它可以對(duì)在地球上存在的東西和發(fā)生的事件進(jìn)行成圖和分析。GIS是地理和計(jì)算機(jī)結(jié)合的產(chǎn)物,人們的生產(chǎn)和生活中80%以上的信息和地理空間位置有關(guān),GIS近年來得到了廣泛關(guān)注和迅猛發(fā)展。

近年來 GIS組件化發(fā)展趨勢(shì)迅速,組件式平臺(tái)包括:Microsoft的COM、ActiveX控件,ESRI和MapInfo也分別推出了MapObjects和MapX。但是用戶體驗(yàn)方面相對(duì)薄弱,為此本課題研究選用.Net3.0的 WPF,開發(fā)人員和設(shè)計(jì)人員可以通過 WPF創(chuàng)建更好的視覺效果、不同的用戶體驗(yàn)。同時(shí)為了以后適應(yīng)更多的基于WPF的GIS相關(guān)系統(tǒng),我們可以直接復(fù)用此課題研發(fā)的組件,提高開發(fā)效率,減少成本。

GDI/GDI+是當(dāng)今Windows桌面應(yīng)用程序的主流圖形庫(kù),GDI/GDI+圖形系統(tǒng)已經(jīng)形成了很多年。它提供了2D圖形和文本功能,以及受限的圖像處理功能。

在WPF中,引入一種新的圖形合成引擎使2D/3D渲染效果以及動(dòng)畫效果絢麗。高生產(chǎn)效率一直是微軟技術(shù)的一貫特點(diǎn),WPF是對(duì)圖像編程更高層次的封裝,因此可以帶來更快的開發(fā)速度。使用 GDI/GDI+再加上復(fù)雜的幾何學(xué)知識(shí),編寫大量代碼實(shí)現(xiàn)的效果,在 WPF下面只需要簡(jiǎn)單的幾行XAML代碼。WPF也有弱點(diǎn),由于是對(duì) Direct3D的一層managed的封裝,在2D應(yīng)用中其繪制效率較之GDI/GDI+相對(duì)不高。

1 界面顯示技術(shù)

隨著人們對(duì)用戶體驗(yàn)和視覺沖擊力追求不斷地提高,客戶對(duì)GIS應(yīng)用的展示效果要求也逐漸增多,他們的要求不僅限于傳統(tǒng)桌面風(fēng)格的操作菜單、GIS標(biāo)繪靜態(tài)展現(xiàn)的形式。

無論是實(shí)現(xiàn)GIS應(yīng)用還是GIS組件,對(duì)于地理數(shù)據(jù)的繪制都是實(shí)現(xiàn)GIS很重要的一步,能否到選擇合適的界面顯示技術(shù)會(huì)對(duì)GIS組件繪制部分的最終效果以及開發(fā)效率造成很大的影響,所以挑選合適的界面顯示技術(shù)尤為重要,經(jīng)過學(xué)習(xí)調(diào)研,對(duì)比介紹一下微軟的各種界面顯示技術(shù):

(1)GDI

GDI不僅提供了圖形圖像的繪制功能,同時(shí)還對(duì)硬件顯示進(jìn)行了更高層次的抽象。換句話說,它將硬件的復(fù)雜性封裝在了GDI API中,用戶使用起來更加方便。

(2)GDI+

顧名思義,GDI+是作為GDI的擴(kuò)展而被引入到Windows中的。它提供了很多GDI所沒有的擴(kuò)展功能,例如對(duì)JPG和PNG圖像格式支持,漸變陰影和抗鋸齒等。無論是 GDI還是 GDI+,它們最大的局限就是不支持硬件加速,同時(shí)無法展現(xiàn)動(dòng)畫和3D圖像。

(3)DirectX

正如在前面所分析的那樣,GDI及其擴(kuò)展 GDI+的一個(gè)最大問題就是不支持硬件加速和動(dòng)畫。這對(duì)于游戲開發(fā)者來說,是無法接受的。為了解決這個(gè)問題,微軟開發(fā)了DirectX。DirectX能夠很好的利用硬件加速,能夠支持3D,全彩圖像,流媒體等等,非常適合游戲工業(yè)等對(duì)圖形圖像處理要求比較高的領(lǐng)域。

(4)WPF

WPF是微軟新一代圖形系統(tǒng),運(yùn)行在.NET Framework 3.0架構(gòu)下,為用戶界面、2D/3D 圖形、文檔和媒體提供了統(tǒng)一的描述和操作方法?;贒irectX技術(shù)的WPF不僅帶來了前所未有的3D界面,而且其圖形向量渲染引擎也大大改進(jìn)了傳統(tǒng)的2D界面。因?yàn)閃PF是在DirectX的基礎(chǔ)上實(shí)現(xiàn)的,所以開發(fā)人員可以利用WPF創(chuàng)建簡(jiǎn)單的UI元素,還可以更進(jìn)一步,開發(fā)自定義的UI元素,例如網(wǎng)格(Grid),流文檔(FlowDocument)和橢圓(Ellipse)等。還可以利用WPF創(chuàng)建輕量級(jí)動(dòng)畫。

依據(jù)客戶的客觀要求即實(shí)現(xiàn)類似游戲界面風(fēng)格的GIS應(yīng)用展示系統(tǒng),以及上述界面顯示技術(shù)對(duì)比來分析:現(xiàn)在大部分流行的GIS應(yīng)用系統(tǒng)和GIS組件界面整體還是沒有改變傳統(tǒng)Windows的風(fēng)格,即便開發(fā)人員通過圖片資源進(jìn)行美化,用戶體驗(yàn)方面也沒有改變傳統(tǒng)的對(duì)話框、菜單等操作方式,這樣的系統(tǒng)適合應(yīng)用,但是不適合絢麗的展示;開發(fā)人員也想到應(yīng)用DirectX進(jìn)行GIS應(yīng)用展示系統(tǒng)的界面顯示進(jìn)行實(shí)現(xiàn),憑借DirectX對(duì)硬件加速、動(dòng)畫、3D方面的支持,DirectX絕對(duì)可以制作出絢麗的界面,但是我們所開發(fā)的GIS應(yīng)用展示系統(tǒng)很大一部分還在于功能,應(yīng)用DirectX開發(fā)界面需要編寫大量的代碼去實(shí)現(xiàn)預(yù)期的效果,這樣大量的工作量則被消耗在界面編寫上;在來看封裝了DirectX的WPF,WPF支持開發(fā)人員創(chuàng)建特殊的 UI元素,所以設(shè)計(jì)人員可以大膽的想象華麗的顯示界面和獨(dú)特的界面用戶體驗(yàn),還可以輕松創(chuàng)建輕量級(jí)的動(dòng)畫展示流程、演練相關(guān)的需求。應(yīng)用 WPF開發(fā)適合于客戶對(duì)于界面的展示需求,而且應(yīng)用 WPF制作界面的開發(fā)效率要遠(yuǎn)高于DirectX,基于對(duì)界面展示效果和開發(fā)效率的考慮,所以選用WPF技術(shù)開發(fā)GIS應(yīng)用展示系統(tǒng)是一種趨勢(shì)。

2 GIS組件整體架構(gòu)

本文通過研究、學(xué)習(xí)國(guó)內(nèi)外成功GIS組件范例的思想和方法,并且結(jié)合以前已有的相關(guān)開發(fā)經(jīng)驗(yàn),研究、設(shè)計(jì)GIS組件的總體結(jié)構(gòu)。主要的設(shè)計(jì)原則:要將各個(gè)功能系統(tǒng)劃分獨(dú)立,在保證良好性能的同時(shí),兼顧可擴(kuò)展性。組件設(shè)計(jì)框架如圖1。

圖1 基于WPF的GIS組件體系結(jié)構(gòu)

應(yīng)用面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)存儲(chǔ)從GIS數(shù)據(jù)讀出的信息,線、面、文字等信息,然后通過 WPF底層繪制函數(shù)繪制幾何圖元,在此需要研究找到 WPF中比底層的繪制方案,經(jīng)過對(duì)WPF的學(xué)習(xí),并進(jìn)行性能方面的測(cè)試得到下述結(jié)論:

(1)應(yīng)用WPF中的System.Windows.Shapes.Polyline類對(duì)解析后的線進(jìn)行繪制。

(2)應(yīng)用WPF中的System.Windows.Shapes.Polygon類對(duì)解析后的區(qū)域進(jìn)行繪制。

(3)應(yīng)用WPF中的System.Windows.Controls.TextBlock類對(duì)解析后的文字進(jìn)行繪制。

3 GIS組件實(shí)現(xiàn)的關(guān)鍵技術(shù)

3.1 繪制數(shù)據(jù)實(shí)體

應(yīng)用面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)存儲(chǔ)從GIS數(shù)據(jù)讀出的信息,線、面、文字等信息,然后通過 WPF底層繪制函數(shù)繪制幾何圖元,在此需要研究找到 WPF中比底層的繪制方案,經(jīng)過對(duì)WPF的學(xué)習(xí),并進(jìn)行性能方面的測(cè)試得到下述結(jié)論:

(1)應(yīng)用WPF中的System.Windows.Shapes.Polyline類對(duì)解析后的線進(jìn)行繪制。

(2)應(yīng)用WPF中的System.Windows.Shapes.Polygon類對(duì)解析后的區(qū)域進(jìn)行繪制。

(3)應(yīng)用WPF中的System.Windows.Controls.TextBlock類對(duì)解析后的文字進(jìn)行繪制。

3.2 繪制算法優(yōu)化

實(shí)踐證明WPF的繪制效率不是很高,由于是對(duì)Direct3D的一層managed的封裝,性能成為我們關(guān)心的問題,尤其是在用戶交互的過程中,比如用戶對(duì)地圖進(jìn)行拖拽,實(shí)現(xiàn)拖拽比較簡(jiǎn)單的方法是以用戶拖拽到位置的中心點(diǎn)進(jìn)行重新繪制,GIS數(shù)據(jù)相當(dāng)龐大,如果頻繁重新繪制,會(huì)使拖拽效果很不流暢,所以需要繪制部分有很強(qiáng)的調(diào)度能力,實(shí)現(xiàn)通過提前繪制屏幕面積4倍的區(qū)域,如圖2所示,使用戶在一定范圍內(nèi)拖拽流暢。通過二維矩陣變換的方式對(duì)原有屏幕上的圖元進(jìn)行平移變換。

圖2 預(yù)繪制區(qū)域

4 總結(jié)

隨著人們對(duì)用戶體驗(yàn)和視覺沖擊力追求不斷地提高,GIS組件將會(huì)被應(yīng)用到更炫的應(yīng)用程序中,然而,由于當(dāng)今的大部分GIS組件界面仍是基于Windows窗口創(chuàng)建通過GDI實(shí)現(xiàn),導(dǎo)致應(yīng)用程序中的視感官效果受到了很大限制。為了實(shí)現(xiàn) GIS組件效果的更廣泛使用,本文以如何開發(fā)基于.Net3.0的WPF技術(shù)的GIS基本組件功能為主要內(nèi)容,希望能對(duì)不同的用戶提供參考。

[1] 胡振文.地理信息系統(tǒng)原理與應(yīng)用.中國(guó)鐵道出版社.2006.

[2] Charles Petzold.A Guide to the Microsoft Window Presentation Foundation. Publishing House of Electronics Industry.2008.

[3] 李勝樂.Mapinfo地理信息系統(tǒng)二次開發(fā)實(shí)例.電子工業(yè)出版社.2004.

[4] 王占全.地理信息系統(tǒng)(GIS)開發(fā)工程案例精選.人民郵電出版社.2006.

[5] Charles Petzold著,蔡學(xué)鏞譯.Windows Presentation Foundation程序設(shè)計(jì)指南.2008.

猜你喜歡
開發(fā)人員繪制組件
Art on coffee cups
無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
能源工程(2022年2期)2022-05-23 13:51:50
新型碎邊剪刀盤組件
U盾外殼組件注塑模具設(shè)計(jì)
Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
放學(xué)后
童話世界(2018年17期)2018-07-30 01:52:02
讓W(xué)indows 10進(jìn)入開發(fā)者模式
電腦迷(2015年12期)2015-04-29 23:22:51
風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
后悔了?教你隱藏開發(fā)人員選項(xiàng)
電腦愛好者(2015年6期)2015-04-03 01:20:56
在轉(zhuǎn)變中繪制新藍(lán)圖
岱山县| 三明市| 青川县| 高台县| 鄂伦春自治旗| 乐平市| 丰台区| 大方县| 岢岚县| 利辛县| 武陟县| 灵川县| 丽江市| 呼伦贝尔市| 崇左市| 石阡县| 都匀市| 巩留县| 晋城| 任丘市| 黑山县| 滦南县| 吐鲁番市| 承德县| 西青区| 昌黎县| 且末县| 西贡区| 香港 | 福州市| 丰城市| 普洱| 浦县| 吴旗县| 进贤县| 宜都市| 威信县| 福贡县| 海南省| 沅陵县| 安顺市|