• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2019-09-24 06:03:39謝祎楊建欽岳翔呼和
      電腦知識與技術(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)編輯:梁書】

      猜你喜歡
      海洋石油
      海洋石油鉆井工程技術(shù)現(xiàn)狀及發(fā)展趨勢
      淺談我國海上鉆井工程項(xiàng)目管理承包方式及實(shí)施
      淺談海洋石油工程建設(shè)項(xiàng)目采購特點(diǎn)及進(jìn)度管理
      商情(2017年17期)2017-06-10 15:47:12
      海洋石油鉆井應(yīng)用過程中的缺陷以及相應(yīng)的技術(shù)創(chuàng)新
      零基預(yù)算在海洋石油企業(yè)采購預(yù)算中的作用研究
      商情(2017年17期)2017-06-10 09:34:47
      探析海洋石油工程管道施工項(xiàng)目運(yùn)行與管理
      淺析海洋石油鉆井平臺安全風(fēng)險(xiǎn)與管控措施
      海洋石油工程建設(shè)項(xiàng)目采購特點(diǎn)及其進(jìn)度管控
      焊接工藝評定在海洋石油工程中的作用
      青年時代(2016年19期)2016-12-30 17:12:27
      海洋石油上游企業(yè)預(yù)算管理
      梁河县| 郎溪县| 柳河县| 乌拉特后旗| 大兴区| 眉山市| 莱阳市| 和静县| 攀枝花市| 庆阳市| 安西县| 方城县| 洛南县| 临潭县| 大连市| 霸州市| 灵石县| 开平市| 板桥市| 南陵县| 郧西县| 镇坪县| 东安县| 临猗县| 定日县| 新巴尔虎右旗| 绵阳市| 台湾省| 茶陵县| 辽阳市| 循化| 惠东县| 浦北县| 岱山县| 正宁县| 会东县| 屏东县| 吉隆县| 金湖县| 收藏| 翁牛特旗|