?

基于移動GIS的離在線一體化數據采集系統的設計與實現

2019-05-13 01:40付開宇方小二
智能城市 2019年6期
關鍵詞:底圖空間數據離線

李 兵 付開宇 方小二

(云南省地圖院,云南 昆明 650000)

傳統的數據采集方法是,內業人員打印出要采集區域的紙質圖紙和報表,交由外業人員攜帶到實地進行采集工作,包括在紙質地圖上對采集信息的標繪,以及在紙質表格中對屬性數據的記錄?;氐睫k公室后需要把標繪的圖形進行矢量化處理,同時把屬性數據錄入數據庫。

傳統的數據采集方法存在數據采集成本高、精度低、效率低、時效性差等不足。3S技術的出現及快速發展為上述問題提供了科學的解決方案。

目前已有的采集系統分為單一在線數據采集系統和單一離線數據采集系統,但存在以下問題:

在線采集系統必須實時在線,但數據采集的工作大多在野外進行,很多地方網絡覆蓋不足,在沒有網絡或網絡信號不足的區域,造成無法開展工作的困擾。同時為保證采集數據的精度,系統中必定會加入影像底圖,但影像圖數據量比較大,在數據交換過程中,勢必會產生許多的網絡傳輸費用。

離線采集系統要求內業人員在外業人員出外業之前,把要采集區域的數據按系統要求處理好,轉存進移動設備,并進行數據的配置。待數據采集完畢后,將采集的數據導出交由內業人員進行處理。但對一個區域的數據采集往往會有多名外業人員攜帶多臺設備同時進行作業,造成內業人員需要配置多臺設備的數據,采集結束后需要將多臺設備采集的數據進行合并處理,顯然增加了內業人員的工作量。并且移動設備中配置的數據存在時效性差、更新難度大、數據制作復雜等不足。

基于以上分析思考,開發離在線一體化的移動GIS數據采集系統,不僅能解決傳統數據采集方法中存在的效率低和精度差的問題,并且相比單一在線或離線的數據采集系統,減少了內外業人員的工作量,有效地提高了生產效率。

1 關鍵技術

1.1 Android

Android是基于Linux并且開源的移動設備操作系統,主要用于移動設備,如手機、手表、平板電腦等。隨著Android版本的更新,Android設備的性能也得到很大的提升,越來越多的用戶使用Android設備進行移動辦公。

1.2 SQLite

SQLite是一款輕量級、自給自足、零配置、無服務器、支持事務的SQL數據庫引擎。與其他數據庫不同,SQLite不需要在系統中進行配置,只要確保SQLite的二進制文件存在即可使用的數據庫。這使得移動端的數據存儲成為現實。

1.3 移動定位

移動定位可以幫助用戶快速的確定當前所在位置,是實現移動GIS采集系統不可或缺的條件。移動定位的主要方式有根據設備GPS芯片和GPS衛星實現的GPS定位,根據設備獲取的基站信息實現的基站定位,根據設備獲取的Wi-Fi信息實現的Wi-Fi定位。由于移動GIS采集系統是用于戶外作業,而在戶外GPS定位的方式精確度最高,所以系統采用GPS定位的方式。

1.4 數字正射影像

數字正射影像,是對航空相片進行數字微分糾正和鑲嵌,按一定圖幅范圍裁剪生成的數字正射影像集。具有精度高、信息豐富、直觀逼真、獲取快捷等優點,所以使用正射影像作為移動GIS數據采集系統的底圖,在此基礎上進行數據的采集。

1.5 VPN

VPN一般指虛擬專用網絡,屬于遠程訪問技術,即利用公用網絡架設專用網絡,進行加密通訊。遠程訪問是通過VPN網關對數據包的加密和數據包目標地址的轉換來實現的。為保證移動GIS數據采集系統中數據的安全性,采用VPN技術作為系統數據交換的加密方式。

1.6 ArcGIS Runtime SDK for Android

ArcGIS Runtime SDK是一套用于構建本地應用程序,并將其部署到各種主流平臺和設備的地圖應用程序開發包,具有強大的地理信息表達和處理功能,使用它可以讓我們做出具有制圖、地理編碼、導航、地理處理、位置分析等能力的應用。對于開發者而言可以根據自己的平臺選擇相應的API進行開發。ArcGIS Runtime SDK for Android主要供Android平臺的開發者使用,使開發更加簡單高效,所以系統采用該技術作為應用開發的接口。

1.7 運行時地理數據庫

運行時地理數據庫是ESRI的擴展名為*.geodatabase的專用于移動端設備的離線矢量格式。具有離線使用、空間數據編輯和屬性數據編輯等特性,所以移動GIS采集系統采用運行時地理數據庫作為離線空間地理數據庫。

1.8 離在線一體化技術

用戶在網絡狀態良好的狀態下將要采集區域的影像底圖、運行時地理數據庫、地名和POI等數據通過VPN連接至服務器進行下載,下載完畢后進行離線外業作業,待外業作業結束后,通過VPN連接至服務器將采集的數據同步回服務器。

2 移動GIS數據采集系統的設計

2.1 總體設計

系統采用四層架構,由數據層、數據交換層、業務邏輯層和移動端顯示層組成。系統可多客戶端同時訪問并采用統一的數據管理方式??傮w設計圖如圖1所示。

圖1 系統總體設計圖

2.2 功能框架

移動GIS離在線一體化數據采集系統的功能概括為如下功能模塊,如圖2所示。

圖2 功能框架圖

2.2.1 作業準備模塊

作業準備模塊包括數據字典、任務范圍和服務發布三部分。數據字典主要是根據采集任務的需求所設置的采集項的字段名稱、字段類型及約束條件等。任務范圍主要是根據不同用戶設置不同的采集區域,用戶在進行作業前只需下載自己任務范圍內的數據,既可以節省數據傳輸的流量,也可以有效地避免多用戶對同一區域的重復采集。服務發布主要是將設置好數據字典和任務范圍的采集數據、影像數據、路網數據和POI數據發布到VPN服務器上,供移動GIS系統使用。

2.2.2 地圖管理模塊

地圖管理模塊提供地圖相關的操作,包括地圖全幅顯示、平移、放大、縮小、長度量測、面積量測、圖層管理和要素的點選查詢等功能。

2.2.3 數據采集模塊

數據采集模塊可以通過手動打點、自由筆或者GPS打點的方式采集點、線、面等空間數據,待空間數據采集結束后根據需求選擇性填寫與其相關的屬性數據,也可以對已采集數據的空間及屬性信息進行編輯。采集模塊還可以采集與所采要素相關聯的多媒體信息,如照片、視頻、音頻等數據。

2.2.4 GPS導航

GPS導航模塊包含定位和路徑導航兩部分,定位模塊依賴設備的GPS模塊獲取到設備的坐標,經過坐標轉換,實時的在系統中渲染顯示。路徑導航模塊可以通過地圖選點或搜索POI的方式設置起點和終點,待設置好起止點之后系統會計算出起點到終點的最優路徑,每段路的長度及耗時,并在地圖界面渲染顯示。

2.2.5 數據傳輸

數據傳輸模塊主要包括運行時地理數據庫的下載、運行時地理數據庫的同步和離線底圖的下載。用戶在網絡狀態良好的狀態下根據任務范圍,將包含采集數據的運行時地理數據庫通過VPN連接至VPN服務器進行下載,下載完畢后進行離線作業,待外業作業結束后,通過VPN連接至服務器將包含采集的數據的運行時地理數據庫同步回服務器。離線底圖下載包含對任務范圍內的影像底圖、地名和POI等數據進行下載,供移動GIS系統在離線狀態下使用。

3 系統實現及應用

3.1 系統開發及運行環境

3.1.1 系統開發環境

系統使用Android Studio 3.0作為開發平臺,Kotlin作為開發語言,結合ArcGIS Runtime SDK for Android 100.2進行開發。

3.1.2 系統運行環境

系統運行在操作系統為Android的設備上,包括手機和平板電腦,Android版本要求在5.0及其以上,內存大于等于2G,存儲容量大于等于16G。

3.2 地圖服務的發布

首先在ArcMap中將影像底圖和地名數據制作好,然后點擊共享為影像服務,將其發布到ArcGis Server上,在服務編輯界面選中允許導出,供移動GIS系統下載離線底圖。將設置好數據字典和任務范圍的采集數據發布為可編輯的要素服務,供移動GIS系統下載和同步運行時地理數據庫。將路網數據發布為路網服務,供路徑導航模塊使用。

3.3 主要功能模塊的實現

3.3.1 加載離線底圖

var tPKFile = File(getCachePath() + "/" + MyConfig.DT_Path)

var tileCache = TileCache(tPKFile.absolutePath)

var dt_Layer:ArcGISTiledLayer = ArcGISTiledLayer(tileCache)

dt_Layer.name = MyConfig.DT _Name

basemaps.baseLayers.add(layer)

var map = ArcGISMap(basemaps)

mapView.map = map

3.3.2 GPS定位

locationDisplay = mapView.locationDisplay

locationDisplay!!.autoPanMode = LocationDisplay.

AutoPanMode.OFF

locationDisplay!!.addLocationChangedListener {

locationChangedEvent ->

location = locationChangedEvent.location}

3.3.3 運行時地理數據庫下載

val generateParamsFuture=

mGeodatabaseSyncTask.createDefaultGenerateGeodatabas eParametersAsync(mGenerateExtent)

var generateParams = generateParamsFuture.get()

var generateJob = mGeodatabaseSyncTask

generateGeodatabaseAsync(generateParams,mGeodatabasePath)

3.3.4 運行時地理數據庫同步

val syncParamsFuture = geodatabaseSyncTask.createDefau ltSyncGeodatabaseParametersAsync(geodatabase)

var syncParams = syncParamsFuture.get()

var syncJob = geodatabaseSyncTask.

syncGeodatabaseAsync(syncParams,geodatabase)

3.3.5 離線底圖下載

val generateParamsFuture =mExportTileCacheTask.create DefaultExportTileCacheParametersAsync(mAreaOfInterest,mMinScale,mMaxScale)

var generateParams = generateParamsFuture.get()

var generateJob = mExportTileCacheTask

exportTileCacheAsync(generateParams,mFileNameWithPath)

3.3.6 路徑導航

RouteTask routeTask = RouteTask.createOnlineRouteTask

(ROUTE_PATH,null);

RouteParameters routeParameters = routeTask.retrieveDefa ultRouteTaskParameters();

routeTask.solve(routeParameters,new CallbackListener() {});

3.3.7 數據采集

包括屬性數據、空間數據及多媒體信息的采集和編輯等。

(1) 空間數據采集??臻g數據的采集包括對點、線、面要素的采集,通過調用ArcGIS Runtime SDK for Android 接口的SketchEditor類來實現,比如采集一個點,代碼如下:

mMapView.sketchEditor = mSketchEditor

mSketchEditor.start(SketchCreationMode.POINT)

(2) 空間數據編輯。包括對已采要素的Geometry進行節點的增、刪、改操作,主要代碼如下:

mSketchEditor.start(geometry,SketchCreationMode.POINT)

(3) 屬性數據采集。屬性界面是系統根據作業準備階段設置的數據字典動態生成的。主要代碼如下:

textValue = mArcGisFeature.attributes.get(field.name)?.toString() ?:""

var edit = editText(textValue) {hint = field.alias;tag =field }

(4) 多媒體采集

系統可以對圖片、音頻和視頻數據進行采集和編輯,比如添加照片,代碼如下:

mArcGisFeature.addAttachmentAsync(FileUtils.File2byte(file),"image/jpg",file!!.name).get()

4 結語

本文首先對傳統的數據采集方式存在的問題進行了描述,然后對移動GIS離在線一體化關鍵技術進行了研究,并提出一種基于移動GIS離在線一體化數據采集系統的設計方案。該方案不僅包含常規GIS系統的數據可視化和管理功能,而且還具備離線數據采集、在線數據同步、位置分析等功能,極大地減輕了數據采集人員的工作量,有效地提高了生產效率。

猜你喜歡
底圖空間數據離線
一種基于實際GIS底圖的精準計費方式探究
航道生產單位中底圖檔案工作存在的問題及思考
異步電機離線參數辨識方法
淺談ATC離線基礎數據的準備
科研院所底圖管理模式轉型研究
GIS空間數據與地圖制圖融合技術
FTGS軌道電路離線測試平臺開發
離線富集-HPLC法同時測定氨咖黃敏膠囊中5種合成色素
網格化存儲的幾項關鍵技術分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合