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

?

基于海洋石油XGIS平臺組件式開發(fā)接口的研究與應(yīng)用

2016-06-06 22:59:14王文興李為沖岳翔楊建欽
電腦知識與技術(shù) 2016年6期
關(guān)鍵詞:接口

王文興++李為沖++岳翔++楊建欽

摘要:近年來,海洋石油建成了服務(wù)石油專業(yè)的公共GIS平臺,并且在多個石油專業(yè)系統(tǒng)中獲得推廣使用。本文主要介紹了海洋石油第二代XGIS的主要架構(gòu)、組件式開發(fā)技術(shù)及系統(tǒng)中使用到的接口技術(shù)。設(shè)計并實現(xiàn)了GIS交互和繪制功能接口的開發(fā)工作。

關(guān)鍵詞:GIS地理信息系統(tǒng);組件式開發(fā);接口;ActiveX;DLL技術(shù)

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)06-0246-02

近幾年來,組件式GIS發(fā)展為GIS的前沿技術(shù),并逐漸成為主流趨勢。目前,已經(jīng)商業(yè)化的組件式GIS平臺有MapObjects、ArcObjects、GeoMedia等[1]。GIS組件之間以及GIS組件與其他組件之間可以通過標準的通信接口實現(xiàn)交互,這種交互甚至可以跨計算機實現(xiàn)。總院的GIS平臺就是基于此架構(gòu)自主研發(fā)了組件式XGIS系統(tǒng)。

1 GIS系統(tǒng)的基本框架結(jié)構(gòu)

XGIS采用的是MVC(Model View Controller)系統(tǒng)設(shè)計模式在XGIS中體現(xiàn)為三個具體的層次組成:可視化組件組、功能組件組和數(shù)據(jù)訪問組件組。對用戶來說,功能組件組是可以定制的[2]。

1.1 XGIS系統(tǒng)組成

圖1是XGIS的系統(tǒng)架構(gòu),包括客戶端和服務(wù)器端兩部分。客戶端能過瀏覽器對XGIS進行訪問。在服務(wù)器端,底層通過數(shù)據(jù)庫做數(shù)據(jù)支持,之上通過WebSvrLock和WebSvrBin(提供WebService服務(wù))來驗證用戶相關(guān)信息和提供相應(yīng)的下載服務(wù)。

圖1 XGIS整體架構(gòu)圖

核心程序是XGIS.OCX主程序,負責(zé)整個GIS程序DLL組件的加載工作等。

1.2主要技術(shù)

為了減少網(wǎng)絡(luò)中的傳輸負載,采用了動態(tài)加載技術(shù),軟件核心模塊采用ActiveX形式,使得在互聯(lián)網(wǎng)環(huán)境下實現(xiàn)單機和C/S應(yīng)用的功能成為可能。在ActiveX模塊內(nèi)部,充分利用各種網(wǎng)絡(luò)通訊協(xié)議(如FTP、HTTP等),與服務(wù)器端的Web Service服務(wù)程序一起,實現(xiàn)地震等數(shù)據(jù)的高速傳輸,利用c++語言的高效性實現(xiàn)圖形的繪制[3]。

功能模塊采用了靜態(tài)連接庫(LIB)和動態(tài)鏈接(DLL)相結(jié)合的方式,主要的功能使用LIB的方式,擴展功能采用動態(tài)鏈接(DLL)的方式,前臺模塊與后臺數(shù)據(jù)的交換采用大數(shù)據(jù)二進制文件格式進行傳輸,并且兼容了jason、xml等形式的數(shù)據(jù)的交換格式,便于與其他系統(tǒng)擴展結(jié)合。

2系統(tǒng)接口研究

在XGIS系統(tǒng)中主要使用了四種接口方式。

(1)SOAP服務(wù)掛接方式

將SOAP服務(wù)引入到GIS中,以GIS為平臺,以空間圖元為對象,幾乎可以遍歷整個的勘探、開發(fā)等數(shù)據(jù)庫系統(tǒng)。在GIS上的某個圖元下按下鼠標右鍵,則系統(tǒng)在“彈出菜單”的頂部列出所有注冊的SOAP服務(wù)。

(2)script腳本語言接口

腳本語言是一種宿主語言,本GIS系統(tǒng)也內(nèi)嵌了一種自行開發(fā)的腳本語言,主要是讀取一些不規(guī)則的、駐留于數(shù)據(jù)庫之外的數(shù)據(jù)到GIS圖件上。

(3)VC++的MIDL 接口

基于MIDL語言對XGIS 二次開發(fā)接口進行定義。通過此接口,可以在其他系統(tǒng)如網(wǎng)頁、C#的窗口程序中對GIS進行調(diào)用和傳參。

(4)DLL接口

Dll接口方式是系統(tǒng)最常采用的方式,動態(tài)調(diào)用方式的特點是完全由編程者用API函數(shù)加載和卸載DLL,程序員可以決定DLL文件何時加載或不加載,在運行時決定加載哪個DLL文件。需要函數(shù)指針和WIN32 API函數(shù)LoadLibrary、GetProcAddress裝載。此種接口具有最大的靈活性和可擴展性,同時對編程能力的要求也較高。

3接口應(yīng)用案例

本文編寫了交互輸入定位點和交互輸入選擇區(qū)域兩種功能組件,采用動態(tài)調(diào)試的方式進行靈活的加載與釋放,也就是第四種DLL接口的方式來進行編程。下面的例子為交互輸入定位點的DLL對外接口函數(shù)為

RETCODE __declspec(dllexport) InterLLXY(void *model, TFunPtr pInterface );

此函數(shù)聲明負責(zé)告訴主程序調(diào)入此交互輸入點位點功能組件的函數(shù)入口,在函數(shù)中作相應(yīng)的聲明就可以調(diào)用此組件功能。

以下為InterLLXY函數(shù)主要代碼展示:

RETCODE __declspec(dllexport) InterLLXY(void *model, TFunPtr pInterface )

{ AFX_MANAGE_STATE(AfxGetStaticModuleState());

//通過CXGISCtrl指針來獲得程序的相關(guān)對象

ctrl = (CXGISCtrl *)model;

/*中間省略一些運算函數(shù)*/

ctrl->pdrawview->isTrackPopupMenu=0;

return 1;

}//函數(shù)結(jié)束

下面函數(shù)為銷毀函數(shù)的聲明:

RETCODE __declspec(dllexport) DestroyInterLLXY(void *model );

函數(shù)的實現(xiàn)如下所示:

RETCODE __declspec(dllexport) DestroyInterLLXY(void *model )

{AFX_MANAGE_STATE(AfxGetStaticModuleState());

if (interllxy )

{/*此處省略運算代碼*/}

return 1;

}

XGIS的運行界面如圖2所示

圖2 交互輸入定位點

從圖2中可以看到,本文編寫并加載DLL組件(交互輸入定位點)、通過點擊鼠標右鍵把這兩個功能掛載到交互菜單下。在輸入相應(yīng)的點的坐標后,會出現(xiàn)圖3顯示的界面,系統(tǒng)通過計算點的坐標自動定位點,并通過相應(yīng)的五角形將其標記出來。

圖3 定位后顯示

4結(jié)束語

XGIS的組件式開發(fā),使得運行與維護效率大大提高,多功能的接口調(diào)用方式使GIS在專業(yè)應(yīng)用方面更為方便,功能擴展更強大。

參考文獻:

[1] 朱大明,徐景中.基于組件式GIS的旅游景點查詢系統(tǒng)開發(fā)研究[J].昆明理工大學(xué)學(xué)報:理工版, 2007, 32(5):1-4.

[2] 張云飛,張欽,楊建欽,等.基于空間對象的公共GIS模型及其在海洋石油信息化中的應(yīng)用[J].中國海上油氣,2009,21(3):211-214.

[3] 張愛華.基于SuperMap Objects組件式開發(fā)的GIS空間網(wǎng)絡(luò)分析功能實現(xiàn)方法[J]. 科技信息, 2013(36).

猜你喜歡
接口
現(xiàn)場采購代表與總部及現(xiàn)場各部門的接口關(guān)系
某電站工程設(shè)計管理與施工、質(zhì)量控制接口關(guān)系研究
脫硝數(shù)據(jù)傳輸系統(tǒng)遠程無線監(jiān)控技術(shù)的研發(fā)與應(yīng)用
中文信息(2016年10期)2016-12-12 12:56:55
西門子SPPA—T3000在委內(nèi)瑞拉燃機電廠中的應(yīng)用與接口
中國市場(2016年32期)2016-12-06 11:16:14
高性能計算機管理軟件基本原理研究
居家環(huán)境監(jiān)測系統(tǒng)研究
基于HIS的體檢軟件設(shè)計與應(yīng)用
中俄網(wǎng)絡(luò)語言編碼接口問題的研究
科技視界(2016年3期)2016-02-26 10:14:32
企業(yè)整合為行業(yè)升級預(yù)留“接口”
含有二氧化鈦薄膜增強虛擬閥的微流控芯片用于二維凝膠電泳分離
阳曲县| 西贡区| 威海市| 北碚区| 华安县| 乐都县| 汶上县| 洛浦县| 化州市| 正镶白旗| 搜索| 浦东新区| 綦江县| 前郭尔| 邮箱| 平乡县| 根河市| 嘉善县| 江源县| 托克逊县| 扶风县| 堆龙德庆县| 长治市| 芷江| 临湘市| 漳州市| 佛教| 兴山县| 内丘县| 平阴县| 奎屯市| 桦南县| 通许县| 六盘水市| 林口县| 海盐县| 县级市| 舟曲县| 凌海市| 卢湾区| 大同县|