亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Skyline平臺的插件式3DGIS應(yīng)用框架研究

        2017-08-01 00:21:15黃夢龍
        地理空間信息 2017年7期
        關(guān)鍵詞:功能模塊插件框架

        黃夢龍

        (1.福建省基礎(chǔ)地理信息中心,福建 福州 350001)

        基于Skyline平臺的插件式3DGIS應(yīng)用框架研究

        黃夢龍1

        (1.福建省基礎(chǔ)地理信息中心,福建 福州 350001)

        面向項目開發(fā)的3DGIS應(yīng)用系統(tǒng),由于未采用統(tǒng)一的框架和開發(fā)規(guī)范,存在開發(fā)人員分工協(xié)作困難、功能模塊難以復(fù)用、系統(tǒng)升級維護工作量大等問題。研究了功能模塊運行時動態(tài)加載、框架程序與插件通信機制、系統(tǒng)運行時資源注入方法等插件式應(yīng)用框架程序?qū)崿F(xiàn)的相關(guān)技術(shù),設(shè)計開發(fā)了基于Skyline的插件式3DGIS應(yīng)用框架;并基于該框架開發(fā)了若干3DGIS行業(yè)應(yīng)用系統(tǒng),驗證了該應(yīng)用框架的可用性。

        3DGIS;插件式;依賴注入;應(yīng)用框架

        由于其表達直觀、蘊含信息豐富的特點,3DGIS得到了廣泛應(yīng)用。TerraExplorer是Skyline公司研發(fā)的3DGIS,支持海量三維數(shù)據(jù)集成,具有產(chǎn)品線齊全、功能豐富、運行流暢等特點[1]。福建省基礎(chǔ)地理信息中心基于Skyline三維平臺開發(fā)了大量的3DGIS,在林業(yè)、氣象、水利等行業(yè)得到了廣泛應(yīng)用。然而隨著應(yīng)用的推廣,三維應(yīng)用系統(tǒng)在開發(fā)和維護過程中存在的問題也逐漸暴露出來。這些系統(tǒng)都是針對特定項目開發(fā)的,未采用統(tǒng)一的架構(gòu),導(dǎo)致系統(tǒng)的升級維護困難。隨著項目的拓展,參與開發(fā)人員的增加,需要解決系統(tǒng)功能模塊劃分和開發(fā)人員分工協(xié)作的問題。在開發(fā)成果復(fù)用方面,由于沒有采用統(tǒng)一的設(shè)計結(jié)構(gòu),各項目積累的功能模塊難以實現(xiàn)二進制級別的復(fù)用,影響了開發(fā)效率。此外,由于用戶需求呈現(xiàn)出多樣性與不確定性,在用戶需求變化時,現(xiàn)有的開發(fā)方法需大量修改程序才能滿足用戶要求,難以快速應(yīng)對用戶需求的變化。

        針對上述問題,本文基于Skyline平臺,采用應(yīng)用框架程序的設(shè)計思路,結(jié)合插件式GIS技術(shù),設(shè)計開發(fā)了插件式3DGIS應(yīng)用框架程序。

        1 關(guān)鍵技術(shù)

        應(yīng)用框架是一個具有部分功能的應(yīng)用程序半成品,提供了可在應(yīng)用程序之間共享的可復(fù)用的公共結(jié)構(gòu);同時也是一個可復(fù)用的設(shè)計構(gòu)件,規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個設(shè)計協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,最終表現(xiàn)為一組抽象類以及其實例之間協(xié)作的方法[2]。應(yīng)用框架提供了通用的服務(wù),在此基礎(chǔ)上可建立不同應(yīng)用。插件技術(shù)是在程序的設(shè)計開發(fā)過程中,把應(yīng)用程序分成框架程序和功能模塊兩部分,每個功能模塊由若干個實現(xiàn)具體業(yè)務(wù)邏輯功能的類(插件)組成,框架程序與插件能夠相互通信,并在框架程序不變的情況下,通過增減或修改插件來調(diào)整應(yīng)用程序的功能[3]。插件式GIS應(yīng)用框架程序規(guī)定了插件的實現(xiàn)方式,為功能模塊提供各種基礎(chǔ)服務(wù),負責(zé)功能模塊的動態(tài)加載、管理、插件的識別、創(chuàng)建與調(diào)用。

        插件式GIS應(yīng)用框架的實現(xiàn)需要解決功能模塊運行時動態(tài)加載與管理、插件與框架程序的通信、系統(tǒng)運行時資源注入方法等問題,本文針對相關(guān)技術(shù)進行了研究。

        1)基于反射技術(shù)的功能模塊運行時動態(tài)加載技術(shù)。系統(tǒng)功能模塊運行時動態(tài)加載是實現(xiàn)基于框架程序的應(yīng)用系統(tǒng)功能動態(tài)擴展、快速適應(yīng)用戶需求變化的重要機制。當前有多種方式實現(xiàn)模塊的動態(tài)加載,包括Win32 DLL(動態(tài)鏈接庫)的運行時加載和基于COM接口的功能模塊動態(tài)加載等。本文基于.NET的反射機制實現(xiàn)了系統(tǒng)功能模塊運行時動態(tài)加載。

        反射是系統(tǒng)審查元數(shù)據(jù)并動態(tài)收集其類型信息的能力。反射是.NET中的重要機制,通過反射可在運行時獲得.NET中每個類型(類、結(jié)構(gòu)、委托、接口和枚舉等)的成員,包括方法、屬性、事件等[4]。使用反射獲取程序集的元數(shù)據(jù)信息,即可動態(tài)地創(chuàng)建類型的實例,再調(diào)用類型的方法或訪問其字段和屬性。本文總結(jié)了3DGIS功能模塊實現(xiàn)所需的通用要求,設(shè)計了系統(tǒng)功能模塊類(插件)的接口和類層次結(jié)構(gòu),利用這些接口和類,通過反射機制即可識別系統(tǒng)的可用功能模塊和插件。

        2)基于事件的框架程序與插件通信機制。系統(tǒng)運行時,框架程序必須及時把自身的狀態(tài)通知插件,以便插件及時做出響應(yīng),調(diào)整自身狀態(tài),如三維地形場景加載后,往往需通知插件是否可執(zhí)行下一步操作。此外,插件在自身狀態(tài)發(fā)生變化時也需通知框架及其他協(xié)作插件??蚣艹绦蚺c插件的通信可采用回調(diào)函數(shù)和事件的方式進行。本文歸納了插件和框架程序通信的需求,采用事件的通信機制,定義了一套完整的框架程序事件。插件只需訂閱相關(guān)事件即可實現(xiàn)與框架程序的交互。本文還研究了事件轉(zhuǎn)發(fā)機制,在框架程序中提供了事件轉(zhuǎn)發(fā)的接口和功能,插件可向其協(xié)作的插件發(fā)送消息,從而較好地解決了插件與協(xié)作插件之間的通信問題。

        3)基于配置的系統(tǒng)運行時資源注入方法。在插件式3DGIS應(yīng)用框架中,由于功能模塊是動態(tài)擴展的,其運行所需的各種資源(數(shù)據(jù)庫連接、專題數(shù)據(jù)、運行時配置等)也是變化的,傳統(tǒng)的由功能模塊主動獲取資源的方式變得不可行。本文借鑒Spring等Java開發(fā)框架普遍采用的依賴注入模式[5-6],設(shè)計了資源配置規(guī)范和配置信息獲取接口,先由框架程序在啟動時讀取所有的資源配置信息,再在創(chuàng)建插件時將資源獲取接口注入插件中,較好地解決了功能模塊運行時所需資源的獲取問題。

        2 應(yīng)用框架程序的實現(xiàn)

        本文以DotNetBar 9.3為界面開發(fā)庫,以Visual Studio 2010為集成開發(fā)環(huán)境,以Skyline TerraExplorer Pro 6.1為3DGIS開發(fā)平臺,采用流行的Ribbon界面風(fēng)格,設(shè)計了插件式3DGIS應(yīng)用框架程序。應(yīng)用框架程序結(jié)構(gòu)及構(gòu)建過程如圖 1所示。

        圖1 應(yīng)用框架程序結(jié)構(gòu)及構(gòu)建過程

        應(yīng)用框架程序的實現(xiàn)包括應(yīng)用框架程序開發(fā)接口庫的實現(xiàn)和應(yīng)用框架基本功能的實現(xiàn)。

        2.1 應(yīng)用框架程序開發(fā)接口庫的實現(xiàn)

        應(yīng)用框架程序開發(fā)接口庫,由應(yīng)用模塊開發(fā)規(guī)范接口、框架程序事件接口、運行時日志輸出接口和三維地圖操作接口等組成。運用應(yīng)用模塊開發(fā)規(guī)范接口,可開發(fā)擴展功能模塊(插件),在模塊中實現(xiàn)具體的業(yè)務(wù)功能,并通過框架程序事件接口、三維地圖操作接口實現(xiàn)與框架程序的通信、操作三維地形和訪問各種專題數(shù)據(jù)。

        圖2 插件接口的UML層次結(jié)構(gòu)

        應(yīng)用模塊開發(fā)規(guī)范接口定義了插件實現(xiàn)需遵循的接口規(guī)范,簡化的插件接口UML層次結(jié)構(gòu)如圖2所示。IPlugin接口用于在反射時識別模塊里的類是否為本系統(tǒng)的功能插件,其余派生的接口用于定義具體的插件。根據(jù)插件是否與三維地圖有交互操作,將插件分為命令(Command)、工具(Tool)、復(fù)雜控件(ToolControl)和??看翱冢―ockWindow)。ToolConrol插件是一種特殊類型的插件,可在框架窗體上創(chuàng)建界面較復(fù)雜的控件或自定義控件。DockWindow插件用于對自定義控件進行封裝,形成在框架主窗體中的停靠窗體。

        框架程序事件接口封裝了TerraExplorer的三維地球事件,包括屬性事件、三維地形、三維對象狀態(tài)變化通知事件以及框架程序內(nèi)部狀態(tài)變化通知事件等。插件通過訂閱這些事件實現(xiàn)了與框架程序和三維地形的交互。此外框架程序還提供了自定義事件機制,可實現(xiàn)插件之間自定義事件的轉(zhuǎn)發(fā),提高了插件間的交互與協(xié)作能力。

        三維地圖操作接口封裝了三維地形和三維對象相關(guān)的各種基本操作,包括三維地球操作、三維工程樹操作、對象創(chuàng)建管理等。在創(chuàng)建插件時,將該接口注入到插件對象中。三維地圖操作接口可有效減少系統(tǒng)升級帶來的維護工作量,在Skyline軟件升級時,只需升級框架的三維操作類庫和相關(guān)接口,而基于框架開發(fā)的應(yīng)用則無需做大的改變。

        系統(tǒng)運行日志對診斷系統(tǒng)運行發(fā)生的位置,快速修改系統(tǒng)錯誤有重要作用。本文基于開源日志組件log4net的運行時日志輸出接口,提供了系統(tǒng)框架程序和各插件在系統(tǒng)運行時輸出系統(tǒng)運行關(guān)鍵信息和運行時異常詳細信息的相關(guān)方法[7]?;赬ML配置的資源配置管理接口提供了應(yīng)用系統(tǒng)所需資源動態(tài)按需加載機制,并在插件創(chuàng)建時注入該接口,使插件可獲取運行時所需的各種資源。

        2.2 應(yīng)用框架基本功能的實現(xiàn)

        應(yīng)用框架程序?qū)崿F(xiàn)了應(yīng)用程序模塊管理、系統(tǒng)界面配置管理、系統(tǒng)資源配置管理等程序管理功能,統(tǒng)一的用戶角色管理、權(quán)限管理、日志管理等系統(tǒng)管理維護功能,以及三維地圖視圖操作等GIS基本功能。

        3 應(yīng)用案例

        基于本文設(shè)計的框架程序,可有效減少重復(fù)開發(fā)3DGIS各項基本功能的工作量,簡化功能模塊的開發(fā)。應(yīng)用系統(tǒng)只需利用通信接口與框架程序交互,通過各種配置接口獲取各種資源,再根據(jù)具體的業(yè)務(wù)邏輯實現(xiàn)功能模塊,最后通過配置組裝,完成系統(tǒng)的開發(fā),目前該框架已應(yīng)用于福建省基礎(chǔ)地理信息中心的3DGIS開發(fā)中。福建省3DGIS集成了福建省道路、境界、地名等基礎(chǔ)地理信息數(shù)據(jù),福建各地市的三維模型數(shù)據(jù)以及行業(yè)專題數(shù)據(jù),提供了三維地圖瀏覽、三維標注與分析、地名和POI查詢、三維路線漫游、城市模型查詢、瀏覽等基本功能,以及國土、森林防火、海關(guān)監(jiān)管、水利、政務(wù)信息、電力規(guī)劃、港口規(guī)劃、交通輔助規(guī)劃、城市輔助規(guī)劃等行業(yè)應(yīng)用功能,共計數(shù)十個模塊近百個插件。系統(tǒng)具有數(shù)據(jù)量大、結(jié)構(gòu)復(fù)雜、功能豐富的特點。利用本文的應(yīng)用框架程序,較好地實現(xiàn)了功能模塊的分割和集成,大大提高了開發(fā)的效率。系統(tǒng)界面如圖 3所示。

        圖3 福建省3DGIS界面

        此外,本文研究的應(yīng)用框架程序還廣泛應(yīng)用于福建省數(shù)字城市應(yīng)用示范建設(shè)中。永春縣三維決策支持系統(tǒng)是數(shù)字永春地理空間框架建設(shè)的應(yīng)用示例,該系統(tǒng)的部分功能模塊復(fù)用了福建省3DGIS的開發(fā)模塊,并結(jié)合永春縣國土資源局的相關(guān)需求,設(shè)計實現(xiàn)了查詢定位、城市漫游、土地利用信息查詢展示、城鎮(zhèn)規(guī)劃輔助決策、高速建設(shè)輔助決策等功能模塊[8],見圖 4。

        圖4 永春縣三維決策支持系統(tǒng)界面

        基于該應(yīng)用框架程序還完成了其他行業(yè)應(yīng)用系統(tǒng)的開發(fā),包括南平市土地收儲三維展示系統(tǒng)、三明市水土流失遙感調(diào)查3DGIS、寧德市水務(wù)管線三維查詢展示系統(tǒng)等,有效推動了行業(yè)應(yīng)用系統(tǒng)的建設(shè)。

        4 結(jié) 語

        基于Skyline的TerraExplorer三維開發(fā)平臺,本文利用.NET反射技術(shù)和事件機制,實現(xiàn)了插件式3DGIS應(yīng)用框架程序??蚣芙涌诘姆€(wěn)定性及其提供對模塊的動態(tài)管理的特點,使得基于應(yīng)用框架程序開發(fā)的功能模塊具有較強的復(fù)用性,系統(tǒng)具有較強的可擴展性,并能快速響應(yīng)需求變化,較好地解決了3DGIS開發(fā)存在的問題。

        隨著應(yīng)用的深入,用戶對系統(tǒng)界面的個性化要求也越來越高。盡管該框架提供了換膚功能,可設(shè)置多種風(fēng)格的界面,但由于采用了Ribbon界面風(fēng)格,界面的布局和樣式較為固定。在后續(xù)的工作中,將繼續(xù)研究基于應(yīng)用框架程序的系統(tǒng)定制方法,提供更為靈活的界面布局和定制方法,提高用戶體驗。

        [1]潘立,張旭,任東風(fēng).基于Skyline的三維GIS構(gòu)建與研究[J].測繪與空間地理信息,2016,39(8):90-93

        [2]宋國兵.基于GIS的應(yīng)用程序開發(fā)框架的設(shè)計與實現(xiàn)[D].杭州:浙江大學(xué),2010:7-17

        [3]崔修濤,吳健平,張偉鋒.插件式GIS的開發(fā)[J].華東師范大學(xué)學(xué)報(自然科學(xué)版),2005(4):51-57

        [4]宋智軍,邱仲潘.Visual C#2010從入門到精通[M].北京:電子工業(yè)出版社,2010:223-233

        [5]翟劍錕.Spring框架技術(shù)分析及應(yīng)用研究[D].北京:中國科學(xué)院大學(xué),2013:9-24

        [6]姜林美,李國剛,杜勇前.結(jié)合AOP思想和依賴注入技術(shù)的輕量級MVC框架[J].華僑大學(xué)學(xué)報(自然科學(xué)版),2016,31(7):92-97

        [7]蔡宇,趙正文.基于NHibernate和Log4Net實現(xiàn)用戶登錄合法性驗證[J].信息技術(shù),2008(11):32-34

        [8]黃夢龍.基于三維GIS的城市規(guī)劃輔助決策技術(shù)研究[J].測繪與空間地理信息,2015,38(12):165-167

        P208

        B

        1672-4623(2017)07-0053-03

        10.3969/j.issn.1672-4623.2017.07.016

        黃夢龍,高級工程師,主要從事基礎(chǔ)地理信息數(shù)據(jù)建庫和3DGIS應(yīng)用開發(fā)相關(guān)工作。

        2017-03-14。

        項目來源:國家重點研發(fā)計劃資助項目(2016YFC0502900);福建省測繪地理信息局科技創(chuàng)新資助項目(2015J12)。

        猜你喜歡
        功能模塊插件框架
        框架
        廣義框架的不相交性
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        WTO框架下
        法大研究生(2017年1期)2017-04-10 08:55:06
        基于ASP.NET標準的采購管理系統(tǒng)研究
        輸電線路附著物測算系統(tǒng)測算功能模塊的研究
        M市石油裝備公服平臺網(wǎng)站主要功能模塊設(shè)計與實現(xiàn)
        石油知識(2016年2期)2016-02-28 16:20:16
        MapWindowGIS插件機制及應(yīng)用
        一種基于OpenStack的云應(yīng)用開發(fā)框架
        功能模塊的設(shè)計與應(yīng)用研究
        欧美日韩亚洲tv不卡久久| 久久精品国产亚洲av高清三区| 亚洲国产精品久久艾草| 性一交一乱一伦一色一情孩交| 亚洲成AⅤ人在线观看无码| 免费毛片一区二区三区女同| 九一免费一区二区三区偷拍视频| 国产白嫩护士被弄高潮| 成人午夜毛片| 午夜香蕉av一区二区三区| 五月天中文字幕日韩在线| 中出人妻中文字幕无码| 精品四虎免费观看国产高清| 中文字幕人妻一区色偷久久| 精品日韩一级免费视频| 久久精品免费观看国产| 日中文字幕在线| 白色白色在线视频播放平台| 国产精品无码制服丝袜| 一区二区三区国产亚洲网站| 东京热加勒比在线观看| 亚洲成人av一区二区| 永久亚洲成a人片777777| 亚洲暴爽av人人爽日日碰| 素人激情福利视频| 人妖一区二区三区视频| a级毛片免费完整视频 | 亚洲精品久久久av无码专区| 亚洲av无码乱码国产麻豆穿越| 久久午夜伦鲁鲁片免费| 国产不卡在线视频观看| 一个人看的视频www免费| 加勒比黑人在线| 一区二区三区国产精品麻豆| 精品国产三级a∨在线| 91视频香蕉| 国产精品美女自在线观看| 欧美性高清另类videosex| 欧美亚洲精品一区二区| 91精品人妻一区二区三区蜜臀| 国产一区二区三区四色av|