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

?

GIS標(biāo)注算法服務(wù)化應(yīng)用研究

2019-09-24 06:03謝祎楊建欽岳翔呼和
電腦知識與技術(shù) 2019年21期
關(guān)鍵詞:海洋石油

謝祎 楊建欽 岳翔 呼和

摘要:針對海洋石油GIS平臺的文字標(biāo)準(zhǔn)功能,本文研究了通過服務(wù)器實(shí)現(xiàn)復(fù)雜算法服務(wù)的技術(shù)與方法。著重闡述了純WEB前臺調(diào)用后臺算法服務(wù)的步驟,以及算法的COM封裝、C#服務(wù)程序和COM算法模塊通訊等關(guān)鍵技術(shù),并提出了WEB前端結(jié)合后臺算法服務(wù)復(fù)用原有資產(chǎn)以及高效的優(yōu)勢。最后通過項(xiàng)目實(shí)踐驗(yàn)證了這種復(fù)雜算法后臺服務(wù)化方案在中海油GIS平臺中的應(yīng)用效果及意義。

關(guān)鍵詞:海洋石油;GIS平臺;標(biāo)注算法;COM技術(shù);后臺服務(wù)化應(yīng)用

中圖分類號:TP391? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2019)21-0024-02

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

“數(shù)字海洋”已成為海洋石油行業(yè)信息化建設(shè)的發(fā)展方向和趨勢。在對海洋石油資源的開發(fā)中,GIS平臺作為一種界面友好直觀的可視化手段,在海洋石油多系統(tǒng)、多層次并錯綜復(fù)雜的信息資源管理、分析和應(yīng)用中發(fā)揮著重要作用。企業(yè)原有的GIS服務(wù)平臺前端是基于C++編寫的ActiveX控件,只能應(yīng)用于Windows系統(tǒng),不能應(yīng)用于移動設(shè)備,且安裝過程麻煩,限制了平臺的應(yīng)用。最近幾年基于純Web語言開發(fā)的GIS前端平臺以其免安裝,可運(yùn)行于各版本瀏覽器,跨操作系統(tǒng)跨平臺、移動設(shè)備友好等特點(diǎn)得到了廣泛的應(yīng)用。GIS平臺也基于純WEB前端技術(shù)進(jìn)行了平臺升級,相應(yīng)也產(chǎn)了一些問題。首先,原有的算法大多用C++編寫,算法移植需要大量的人力工時;其次,前端基于Javascript的代碼在運(yùn)行復(fù)雜算法時效率低、運(yùn)算速度慢,達(dá)不到使用要求。怎樣復(fù)用已有的算法資產(chǎn)且兼顧平臺性能是GIS升級中必須要考慮的問題。

本文介紹了將原有的C++文字標(biāo)注算法封裝成COM,并用后臺服務(wù)調(diào)用的方式,在升級后的GIS平臺快速實(shí)現(xiàn)文字標(biāo)注算功能的實(shí)用方案,并詳細(xì)介紹了具體實(shí)現(xiàn)的步驟和其中的技術(shù)要點(diǎn)。

1 升級后GIS平臺文字標(biāo)注功能的實(shí)現(xiàn)研究

1.1 建設(shè)目標(biāo)及思路

目標(biāo)是將原有GIS平臺的多邊形文字標(biāo)注功能移植到升級后基于純Web語言的GIS平臺。思路是將原有C++文字標(biāo)注算法封裝成后臺服務(wù)模塊,通過服務(wù)調(diào)用方式給各前臺客戶端提供算法服務(wù)。

1.2 關(guān)鍵技術(shù)及方法

1.2.1 升級后的基于服務(wù)GIS平臺技術(shù)架構(gòu)

升級后的基于服務(wù)的GIS平臺架構(gòu)如上圖所示,移動設(shè)備、PC等客戶端通過瀏覽器加載GIS前臺核心框架代碼,GIS核心框架再根據(jù)具體需求加載空間數(shù)據(jù)插件(負(fù)責(zé)后臺數(shù)據(jù)庫數(shù)據(jù)讀?。?、空間分析算法插件(坐標(biāo)計(jì)算等算法)以及用戶定制的其他功能插件,GIS核心框架負(fù)責(zé)用戶交互、地圖繪制、空間對象管理等核心功能。調(diào)用后臺算法則由算法插件發(fā)起,C#網(wǎng)站服務(wù)程序負(fù)責(zé)接收調(diào)用參數(shù),并調(diào)用本地COM算法,最終將結(jié)果返回前端GIS平臺。

1.2.2 文字路徑標(biāo)注算法的封裝

文字路徑算法是根據(jù)多邊形坐標(biāo),計(jì)算標(biāo)注文字位置的算法。在GIS系統(tǒng)中經(jīng)常應(yīng)用于各種面類型空間對象(如盆地、油田、礦區(qū)、保護(hù)區(qū))的名稱標(biāo)注。為了方便C#服務(wù)端程序調(diào)用,首先要將原有的C++代碼算法封裝成COM組件,以下是封裝成COM過程中要注意的幾個技術(shù)要點(diǎn):

1)建立COM工程時,項(xiàng)目的通用框架和引用要使用和C#服務(wù)程序相同的.Net Framework版本,否則會導(dǎo)致C#服務(wù)程序加載COM時失敗。

2)定義接口參數(shù)時,傳入的內(nèi)存指針地址用LONG類型,傳出的內(nèi)存指針地址用LONG *類型,目的是方便使用全局堆地址進(jìn)行數(shù)據(jù)交互。

3)在接收數(shù)據(jù)和返回結(jié)果時,要在全局堆分配內(nèi)存,保證數(shù) 據(jù)在托管和非托管代碼間? ? 傳遞時不會出錯,代碼示例如下:

1.2.3 服務(wù)器端C#程序和COM程序的通訊

在調(diào)用COM算法時,C#程序和C++ COM組件的通訊是其中難點(diǎn),因?yàn)橐婕巴泄艽a和非托管代碼間的參數(shù)傳遞,以下是調(diào)用步驟和要注意的技術(shù)要點(diǎn)。

步驟 :

1)將生成的COM控件在服務(wù)器端進(jìn)行注冊。

2)在C#服務(wù)程序工程的引用中添加注冊好的COM控件,添加引用后,會自動生成和C++ COM的非托管代碼和C#托管代碼進(jìn)行交互的Interop類,通過這個類C#就可以調(diào)用COM的接口。

3)調(diào)用時首先new 一個第2步生成的Interop類,然后直接調(diào)用定義好的接口,如下所示:

技術(shù)要點(diǎn):

1) 托管和非托管代碼的通訊最容易出錯的地方是內(nèi)存指針的傳遞。在C#托管代碼向C++ COM非托管代碼傳遞內(nèi)存指針時,注意要在全局堆分配內(nèi)存。示例如下:

2)傳參前,要將托管代碼本地?cái)?shù)據(jù)拷貝到分配好的全局堆內(nèi)存中,示例如下:

3)對于返回結(jié)果,則要執(zhí)行相反的步驟,要將全局堆的數(shù)據(jù),考入托管代碼本地內(nèi)存。示例如下:

4)在調(diào)用結(jié)束后,不要忘記釋放全局堆內(nèi)存,示例如下:

1.2.4 前端GIS調(diào)用后臺算法服務(wù)

瀏覽器端通過http請求,將要計(jì)算文字標(biāo)注路徑的多邊形坐標(biāo)和其它參數(shù)以JSON格式發(fā)給服務(wù)器端,計(jì)算結(jié)束后,前端的GIS平臺代碼使用AJAX異步通訊技術(shù)接收服務(wù)器傳回的JSON格式的計(jì)算結(jié)果,并負(fù)責(zé)解析成文字路徑坐標(biāo),然后根據(jù)經(jīng)緯度坐標(biāo)將文字標(biāo)準(zhǔn)在地圖上。

2 應(yīng)用效果

圖2顯示的是升級后的GIS平臺界面,底圖是海洋石油GIS遙感底圖,圖中藍(lán)色的面對象是加載的渤海海域的盆地,盆地的名稱則是調(diào)用后臺文字路徑標(biāo)注算法服務(wù)實(shí)現(xiàn)的文字標(biāo)注,在實(shí)際使用中速度快、無延遲,完全滿足了升級后GIS平臺需求。

3 應(yīng)用意義

通過以上描述的方法步驟,我們在很短的時間內(nèi)為升級后的GIS平臺實(shí)現(xiàn)了文字路徑標(biāo)注功能。其重要意義在于以下兩點(diǎn):

1)為企業(yè)傳統(tǒng)軟件升級改造提供了一種重復(fù)利用原有算法,節(jié)約成本,減少開發(fā)周期的切實(shí)可行的方案。

2)將WEB技術(shù)前端跨平臺、跨瀏覽器、移動端友好等優(yōu)點(diǎn)和后臺C++程序計(jì)算速度快、效率高的優(yōu)點(diǎn)很好地結(jié)合在一起。為將來給升級后GIS平臺添加其他所需的復(fù)雜算法,如投影算法、空間分析算法等功能提供了一套成熟的解決方案。

參考文獻(xiàn):

[1] 張?jiān)骑w,張欽,楊建欽,歐陽侃夫. 基于空間對象的公共GIS模型及其在海洋石油信息化中的應(yīng)用[J].中國海上油氣,2009 21(3): 211-214.

[2] 黃際洲,崔曉源. 精通.NET互操作:P/Invoke、C++ Interop和 COM Interop[M].北京:人民郵電出版社,ISBN:978-7-20434-9 .

【通聯(lián)編輯:梁書】

猜你喜歡
海洋石油
淺談我國海上鉆井工程項(xiàng)目管理承包方式及實(shí)施
淺談海洋石油工程建設(shè)項(xiàng)目采購特點(diǎn)及進(jìn)度管理
海洋石油鉆井應(yīng)用過程中的缺陷以及相應(yīng)的技術(shù)創(chuàng)新
零基預(yù)算在海洋石油企業(yè)采購預(yù)算中的作用研究
探析海洋石油工程管道施工項(xiàng)目運(yùn)行與管理