任培祥,范光甫,刁富陽,王 剛
(北京洛斯達數字遙感技術有限公司,北京 100120)
移動終端電力三維GIS平臺設計與實現
任培祥,范光甫,刁富陽,王 剛
(北京洛斯達數字遙感技術有限公司,北京 100120)
摘要:本文研究了移動終端相關軟硬件環境以及海量基礎地理數據的組織與快速發布、電網三維模型的調度與渲染、矢量及地名數據的分塊與漸進式加載等關鍵技術,利用C++、OpenGL ES、移動互聯網技術等創建了基于移動終端的三維渲染引擎。利用該引擎提供的SDK開發了移動終端電力三維地理信息系統(Geographic Information System,GIS)基礎平臺,實現了信息模式共享以及系統數據整合,同時設計并實現了電網業務的實用性功能。
關鍵詞:移動互聯網;電網三維模型;渲染引擎;三維GIS。
隨著移動互聯網技術的發展,手機、平板電腦等智能設備的應用越來越廣泛,各種應用層出不窮且如微信、手機淘寶等,移動智能終端已經深入到我們生活的各個方面。由于3G/4G無線網絡技術的發展,移動智能終端在專業領域以及企業級方面的應用也越發凸顯,移動終端市場也必將成為這些領域的必爭之地。百度、騰訊、Google Earth、ESRI等互聯網及地理信息專業領域的企業在移動終端方面也都進行了重點研究并開發了相關的產品。但是在專業領域方面移動互聯網產品還不能滿足企業級應用需求,缺乏有針對性的、實用性的產品。
本文通過研究移動設備的軟硬件、開發環境、三維圖形庫、GIS、觸控、語音識別等相關技術,研發了一套適用于移動終端的三維渲染引擎,該引擎提供二次開發包,支持Andriod 和IOS操作系統。利用該引擎搭建了移動終端電力三維GIS基礎平臺,可實現海量基礎地理數據發布、電網三維模型快速調度與渲染、矢量及地名數據漸進式加載以及電網業務實用性功能。
2.1框架設計
系統采用典型的三層結構設計:數據層、服務層、表現層。數據層主要是存儲影像、地形、矢量、電網三維模型、地名等基礎數據;服務層主要是提供基礎數據的快速檢索及發布;表現層主要是通過無線網絡與服務層進行連接并接收發布的數據,最終在客戶端展現。系統結構見圖1。

圖1 系統架構
2.2流程設計
系統采用網絡數據發布及本地加載兩種方式實現基礎數據的展現,基礎影像、數字高程模型(Digital Elevation Model, DEM)以及電網三維模型作為本系統最基本的數據,可分別通過上述兩種方式實現加載并展現。圖2中藍色代表基礎影像、DEM加載的流程,紅色代表電網三維模型加載的流程。整個流程的設計考慮到了移動終端硬件設備以及內存的承載力,在數據加載的過程中系統做了相應的調度以及內存控制,同時為了保證系統運行的效率,采用了多線程設計模式。

圖2 系統數據加載流程
2.3關鍵接口設計
系統核心的功能包括兩個:(1)海量基礎地理數據的加載、調度;(2)電網三維模型的調度與快速渲染。
海量基礎地理數據加載通常采用WMTS(Web Map Tile Service,地圖瓦片服務)實現,WMTS是OGC中規定的Web服務之一,可以通過網絡訪問的方式能夠為用戶提供地圖瓦片服務??蛻舳藢⑾嚓P信息通過服務鏈接的方式發送至服務端,然后由服務端根據參數進行快速搜索并將結果返回給客戶端,主要接口包括:瓦片地理范圍、層級、服務名、行號、列號等。
電網三維模型采用數據庫和文件方式聯合存儲,數據庫存儲了電網三維模型的關聯信息,文件存儲了三維模型實體數據。系統利用數據庫的信息以及實體模型數據可構建出電網三維模型的關聯關系,能夠實現線路桿塔、絕緣子/金具、導線的準確繪制,主要接口包括:模型路徑、線路名稱、回路數、導線分裂數、掛點、姿態等。
2.4 跨平臺設計
跨平臺是指系統的開發和實現不依賴于操作系統或者硬件,系統程序代碼不需要修改過多就可以在其它操作系統上成功運行。語言方面,C/C++屬于源碼級跨平臺開發語言,可以作為程序語言的首選,Android和IOS操作系統與UI相關的系統函數使用的特定語言分別為JAVA、Objective-C語言,底層核心都支持常見的跨平臺語言C/C++語言;圖形渲染方面OpenGL ES是OpenGL三維圖形API的子集,在Android和IOS操作系統都支持底層C/C++語言的函數接口,用戶可以將OpenGL ES代碼進行封裝,構建底層核心代碼。
跨平臺設計是移動三維GIS系統能夠在安裝不同操作系統的移動設備正常運行的基本原則。采用UI與底層核心分離的設計原則,使得UI使用系統特有語言進行與用戶操作相關的開發,底層采用C語言封裝OpenGL ES的方式構建核心類庫與接口,這種跨平臺設計方法兼顧了用戶體驗和系統的高效性與跨平臺特性。
3.1海量基礎地理數據發布
3.1.1數據組織方式
系統采用常規的四叉樹組織方式,將原始數據處理成瓦片金字塔,全球范圍內第0層為2×1張,第1層為4×2張依次類推,見圖3。

圖3 瓦片金字塔分塊示意圖
3.1.2數據調度及渲染
系統采用了分頁機制實現了金字塔瓦片的調度,分頁機制的工作方式是按照用戶的可視范圍,將多個子節點設置為復雜模型的多個細節層次,在視點靠近時呈現較多的物體細節,而在遠離時僅僅顯示出一個簡化的模型,從而降低了運算和繪制的負擔。與普通多細節層次(Levels of Detail, LOD)不同的是,它不需要將所有層次的節點一次性加載進內存,而僅僅需要指定各個層次節點的文件名。在程序運行階段,利用分頁數據庫功能將這些節點動態加載到場景中,并根據用戶當前的可視范圍,將那些一段時間內無法被看到的子節點從內存中卸載,以節約系統資源。如果用戶的視域改變,被釋放的細節層次子節點又重新進入視野,分頁數據庫線程會重新加載它,見圖4。

圖4 四叉樹結構中使用分頁原理
3.1.3下載緩存
建立緩存的目的主要是提高數據的訪問速度,本系統基于移動設備的特點設計了相應的緩存機制,可實現數據下載并緩存。移動端的緩存機制主要包括兩個模塊:下載和緩存。其中下載模塊主要負責下載隊列的新建、開啟、關閉、管理、刪除以及瓦片請求的添加、處理、刪除等;緩存模塊主要為每一條下載線程存儲緩存文件(*.dat)及索引文件(*.idx),在應用程序運行初始時通過讀取索引文件讀入緩存文件中的瓦片數據。緩存文件中記錄了瓦片數據的字節流,索引文件記錄了該瓦片對應的行列號,緩存文件和索引文件一并使用。
3.2電網三維模型調度與渲染
3.2.1數據組織方式
電網三維模型的數據量相對較大、關聯關系較復雜等特點,數據存儲采用數據庫及文件聯合方式。考慮到移動平臺軟硬件環境的兼容性以及服務端數據發布,本系統采用SQLite數據庫存儲電網三維模型的線路信息及關聯信息,如:模型路徑、線路名稱、回路數、導線分裂數、掛點、姿態等,可支持多條線路數據;采用文件的方式存儲了三維模型實體數據,數據按照線路代碼分文件夾存儲。
3.2.2數據調度及渲染
由于電網三維模型數據很大,構建全部模型需要很長時間和占用大量內存,對于移動設備來說無疑會增加很大開銷。本文研究了根據視點的位置來加載視野內的線路數據,根據特定淘汰算法卸載那些長時間不在視野內的線路數據,通過這種策略有效減少了系統占用的內存。考慮到桿塔、絕緣子/金具等模型的精細化程度,本文研究了LOD及Impostor技術來提升模型渲染的效率。
3.2.3網絡數據發布
SQLite支持C++程序使用,同時支持PHP、JAVA、.NET連接訪問,考慮到線路數據需要進行網絡發布,且SQLite不具備遠程訪問的功能,本文研究了移動端通過Web Service 的方式獲取線路數據,服務器端使用Apache+PHP組合實現遠程數據查詢請求,客戶端向服務器發送一條包含SQL查詢語句字符串,PHP網頁獲取并解析,同時連接本地SQLite數據庫進行查詢,然后將查詢結果返回給客戶端,最終實現網絡數據發布。
3.3矢量及地名數據分塊與漸進式加載
3.3.1數據組織方式
矢量數據包括點、線、面三種類型,地名屬于點狀類型。矢量加載分為真矢量及柵格化矢量兩種方式,各有優缺點。真矢量優點是顯示效果好,查詢操作簡單,缺點是數據結構復雜;柵格化矢量優點是數據結構簡單,缺點是顯示效果差、查詢操作復雜。結合實際情況本文研究了真矢量的加載及繪制方式。矢量和地名數據本身并沒有特殊性,根據移動終端的硬件環境,本文設計了將矢量數據直接存儲,將地名數據存儲到SQLite數據庫中,方便進行數據服務發布。
3.3.2數據調度及渲染
矢量和地名數據具有連續性強,覆蓋范圍大,且具有層級分布特性,如矢量數據和地名數據通常情況下按照不同級別進行存儲,如省級、地市級、縣級、鄉鎮級。根據數據的特點,系統研究了適用于矢量、地名層級渲染的機制,目標是利用瓦片切片機制實現數據的分塊處理及分層加載。基本思想是:將每一層(類)數據根據覆蓋范圍大小選擇合適的塊大小進行動態切分,然后根據不同級別數據的特點選擇合適的LOD層級進行動態加載及渲染。
3.3.3數據編碼規則
系統根據場景視點的位置對多塊數據進行判斷,原則是在視野范圍之內的加載,不在視野范圍之內的剔除,這種機制實現的前提是數據塊要有統一的編碼規則。
具體公式如下:

式中:lat、lon分別為數據的位置; n為數據層級(不同級別n的值設定的不一樣)。
4.1功能特點
系統支持Andriod和IOS,底層采用C++、OpenGL ES等技術,上層根據不同操作系統選擇對應的語言,Andriod端采用JAVA,IOS端采用Object-C,通過上層調用底層的接口實現不同的應用。主要功能如下:
(1)海量基礎地理數據調度與漫游
系統支持無線網絡數據服務發布,支持多分辨率影像和DEM數據加載,能夠實現海量基礎地理數據的快速調度與漫游。數據可通過配置的方式進行加載,方便用戶使用。
(2)電網三維模型快速加載及渲染
系統支持包括線路桿塔、絕緣子/金具、導線等電網三維模型的精確繪制,能夠真實還原現場環境,同時支持物體拾取,便于做進一步業務應用開發。
(3)矢量、地名數據加載
系統支持各級行政區劃及地名數據的分塊漸進式加載,支持數據的屬性查詢。
(4)全 球 定 位 系 統(Global Positioning System, GPS)實時定位及軌跡繪制
系統支持GPS實時定位,同時支持用戶軌跡的實時繪制,便于用戶進行自身的快速定位及目標點的跟蹤判斷。
(5)地物標繪
系統支持點狀、線狀、面狀地物標繪,如測量控制點、輸電線路、交叉跨越河流及房屋等,便于用戶進行外業數據采集,如外業調繪。
(6)信息查詢
系統支持線路及熱點的信息查詢,同時支持興趣點的標注,便于用戶及時了解線路整體及敏感點信息。
(7)數據采集與上傳
系統支持拍照、文字錄入及上傳功能,能夠進行實地現場拍照并上傳至指定服務器,充分利用了移動互聯網技術手段,有效保證了數據的及時性、準確性。
除上述功能外,系統還提供了圖層管理、坐標定位、飛行漫游、多種對象繪制、空間分析等相關功能,便于用戶進行多種應用。
4.2運行效率
系統以晉東南—南陽—荊門1000 kV特高壓交流試驗示范工程、部分陜西省內線路工程、哈鄭特高壓工程陜西段、全國范圍內的矢量行政區劃、地名注記以及其它附屬信息為試驗數據,分別在iPad 3和iPad 4上進行了運行測試,iPad 3 和iPad 4硬件配置見表1。表2測試結果表明:(1)隨著系統加載數據量的增大,系統內存占用越多,運行效率也會變慢;(2)不同的數據采用的調度機制也會對渲染產生一定的影響;(3)在iPad 4上相同數據運行的效率要明顯高于iPad 3。

表1 硬件配置

表2 內存占用及渲染幀率
本文研究了移動終端軟硬件、無線網絡、三維可視化、GIS等相關技術,設計并開發了一套適用于移動終端的三維渲染引擎,同時利用該引擎搭建了移動端電力三維GIS基礎平臺。隨著移動互聯網技術的發展,移動智能終端的應用在專業領域及企業級方面會更加深入。本文以電力行業的部分業務為研究對象,實現了一些實用性功能,后續還會進行針對性的研究與開發,提高移動終端三維GIS在電力行業中的應用。
參考文獻:
[1] 周旭.OpenGIS網絡地圖分塊服務實現標準(WMTS)分析[J].地理信息世界,2011,(4).
[2] 任培祥,等.三維全景智能電網信息化支撐平臺的關鍵技術研究與應用[J].電力勘測設計. 2009,(4).
[3] 鄧世軍,等.數據分頁技術的海量三維數據模型動態調度[J].測繪科學,2013,(4).
[4] 熊慶文,邊馥苓.基于嵌入式數據庫系統的移動GIS應用體系結構研究[J].武漢大學學報(信息科學版),2006,(1).
[5] 于海龍,等.基于WebServices的GIS與應用模型集成研究[J].測繪學報,2006,(2).
[6] 李建勛,等.面向影像金字塔的線性四叉樹編碼及其特性[J].計算機應用,2011,(4).
[7] 白建軍,趙學勝,陳軍.基于線性四叉樹的全球離散格網索引[J].武漢大學學報(信息科學版),2005,(9).
[8] 鄧世軍,等.數據分頁技術的海量三維數據模型動態調度[J].測繪科學,2013,(4).
[9] ErikM.BuckOpenGLES應用開發實踐指南:IOS卷[M].徐學磊,譯.北京:機械工業出版社.2013.
[10] 官酩杰.基于OpenGLES的移動平臺圖形渲染引擎研究與實現[D].北京:北京交通大學,2010.
中圖分類號:TM715
文獻標志碼:B
文章編號:1671-9913(2015)02-0056-05
* 收稿日期:2014-07-30
作者簡介:任培祥(1979- ),男,河北泊頭人,碩士,工程師,主要從事電力三維GIS研究與應用;
Design and Implementation of Power 3D GIS on Mobile Terminal
REN Pei-xiang, FAN Guang-fu, DIAO Fu-yang, WANG Gang
(Beijing North-star Digital Remote Sensing Technology Co.,Ltd., Beijing 100120, China)
Abstract:Due to the good effect of DC based de-icing technique used in overhead transmission line, it has been widely used in conductor de-icing of 500kV and above AC transmission line line. The ground wire de-icing technology becomes the current problem to be solved. In Shi Bing - Xian Ling Shan 500kV transmission line anti-icing renovation project, according to the complex ground wires, we made deeply study on the DC based de-icing technique for the project and calculated and analyzed. Then we proposed appropriate solutions for de-icing of this project and achieved good effect. This paper based on engineering practice combined with DC based de-icing technology and proposed next prospect.
Key words:mobile internet;power 3D model; rendering engine;3D GIS.