謝義娟 代林海
摘要:隨著以手機(jī)、平板電腦等為代表的移動(dòng)設(shè)備的廣泛使用,移動(dòng)端系統(tǒng)開發(fā)技術(shù)的日趨成熟,移動(dòng)端上的“一張圖”應(yīng)用如雨后春筍般涌現(xiàn),但現(xiàn)在的“一張圖”采用在線的方式,訪問發(fā)布的各種地圖服務(wù)。而國土資源規(guī)劃管理中許多工作區(qū)域在偏遠(yuǎn)或網(wǎng)絡(luò)信號(hào)差的地區(qū),加上因數(shù)據(jù)涉密不能運(yùn)行在互聯(lián)網(wǎng)上,當(dāng)前的方式已然無法滿足當(dāng)前工作需要。因此,本文基于ArcGIS for Android和Spatialite技術(shù),研究、實(shí)現(xiàn)一種離線移動(dòng)端國土資源“一張圖”系統(tǒng),并用于銅仁市國土資源管理調(diào)查工作中。
Abstract: With the widespread use of mobile devices such as mobile phones and tablet computers, mobile terminal system development technology is becoming more and more mature. "One Map" applications on the mobile terminal have sprung up. The current
"One Map" is an online way to access various map services published. However, many work areas in land and resources planning management are in remote areas or areas with poor network signals. In addition, because of data confidentiality, they cannot run on the Internet, the current method can no longer meet the current work needs. Therefore, based on ArcGIS for Android and Spatialite technology, this paper studies and implements an offline mobile terminal "One Map" system, which is used in the survey of land and resources management in Tongren City.
關(guān)鍵詞:離線“一張圖”;ArcGIS for Android;Spatialite空間數(shù)據(jù)庫
Key words: offline "One Map";ArcGIS for Android;Spatialite spatial database
中圖分類號(hào):P208? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2020)05-0224-03
1? 概述
“一張圖”是以遙感影像為基礎(chǔ)地圖,利用地理信息技術(shù),將與規(guī)劃、國土資源相關(guān)的各類數(shù)據(jù)根據(jù)統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)和規(guī)范,整合到統(tǒng)一地理空間坐標(biāo)系平臺(tái)系統(tǒng)中,實(shí)現(xiàn)基本的地圖瀏覽、屬性查詢、空間分析與幾何運(yùn)算等功能,為相關(guān)部門提供管理依據(jù)和決策參考。
當(dāng)前,國土資源數(shù)據(jù)大都運(yùn)行在國土專網(wǎng)之上,國土資源管理者外出辦公無法及時(shí)查看、了解國土資源情況。近年來,移動(dòng)技術(shù)迅猛發(fā)展,以智能手機(jī)、平板電腦等為代表的移動(dòng)設(shè)備得到了廣泛的應(yīng)用。使用移動(dòng)終端管理國土資源的需求也應(yīng)運(yùn)而生。ArcGIS for Android是目前較為流行的移動(dòng)端地理信息應(yīng)用系統(tǒng)開發(fā)包,它封裝了豐富的操作空間數(shù)據(jù)的接口,張海瑞等基于ArcGIS for Android實(shí)現(xiàn)了野外實(shí)習(xí)數(shù)據(jù)采集與導(dǎo)航系統(tǒng)[1]。但是目前版本的ArcGIS for Android暫不支持矢量數(shù)據(jù)的離線存儲(chǔ),而Spatialite是一款簡單輕便的開源空間數(shù)據(jù)庫,在地理信息工程項(xiàng)目中有廣泛應(yīng)用,關(guān)昆等人研究分析Spatialite空間數(shù)據(jù)的數(shù)據(jù)組織與存儲(chǔ)機(jī)制,實(shí)現(xiàn)了.Net環(huán)境下的空間數(shù)據(jù)庫管理系統(tǒng)可視化應(yīng)用系統(tǒng)[2],陳俊明使用Spatialite技術(shù)實(shí)現(xiàn)了離線空間數(shù)據(jù)的查詢與管理[3],夏軍等基于Spatialite開發(fā)了IOS端的“一張圖”展示系統(tǒng),實(shí)現(xiàn)無網(wǎng)絡(luò)環(huán)境下的多源地圖數(shù)據(jù)的聚合使用[4]。因此,本文將結(jié)合實(shí)際應(yīng)用場景,利用ArcGIS for Android 和Spatialite空間數(shù)據(jù)庫技術(shù),探索研究在移動(dòng)客戶端(Android)空間數(shù)據(jù)離線存儲(chǔ)的方法,實(shí)現(xiàn)空間數(shù)據(jù)的展示、編輯、查詢、統(tǒng)計(jì)分析,保證國土資源管理人員任何時(shí)間、任何地點(diǎn)查看各類國土資源空間數(shù)據(jù),全面掌控國土資源情況。
2? 關(guān)鍵技術(shù)
2.1 ArcGIS for Android
ArcGIS Runtime是美國ESRI公司為地理空間數(shù)據(jù)應(yīng)用提供的移動(dòng)端解決方案,同時(shí)支持IOS平臺(tái)和Android平臺(tái)。開發(fā)者可以通過Android Studio開發(fā)平臺(tái)搭建開發(fā)環(huán)境,通過ArcGIS Runtime for Android API調(diào)用ArcGIS Server 發(fā)布的地圖服務(wù)和數(shù)據(jù)。ArcGIS Runtime for Android 提供豐富的空間數(shù)據(jù)分析API,能夠?qū)崿F(xiàn)空間查詢統(tǒng)計(jì)。目前,ArcGIS for Android在離線數(shù)據(jù)存儲(chǔ)方面只支持切片數(shù)據(jù)存儲(chǔ),對(duì)于矢量數(shù)據(jù)暫不支持,因此,想要對(duì)空間數(shù)據(jù)進(jìn)行編輯,需要用到Spatialite空間數(shù)據(jù)庫。
2.2 Spatialite
Spatialite是一套具備空間數(shù)據(jù)管理功能的SQLite數(shù)據(jù)庫系統(tǒng),它遵守OGC-SFS(Open GeoSpatial Consortium - SimpleFeature Specification )標(biāo)準(zhǔn)并支持空間幾何數(shù)據(jù)類型和跨平臺(tái)[5]。支持跨平臺(tái)空間數(shù)據(jù)操作。Spatialite空間數(shù)據(jù)庫以.sqlite單個(gè)文件的形式存在,方便攜帶拷貝,支持.shp 、.dbf 、.txt 、.csv等作為數(shù)據(jù)源,也支持其相應(yīng)格式的導(dǎo)出。
Spatialite提供了空間數(shù)據(jù)管理工具(Spatialite GUI)實(shí)現(xiàn)對(duì)空間數(shù)據(jù)的入庫管理,同時(shí)提供了對(duì)了空間數(shù)據(jù)瀏覽工具((Spatialite GIS)),能夠?qū)patialite中的數(shù)據(jù)進(jìn)行渲染,方便瀏覽。入庫后的空間數(shù)據(jù)以一般屬性表的方式展現(xiàn),通過Geometry字段進(jìn)行管理,Sptialite除了基本數(shù)據(jù)庫操作外,還提供了豐富的SQL擴(kuò)展API,以支持對(duì)離線空間數(shù)據(jù)進(jìn)行查詢與分析,同時(shí),它通過R-tree索引機(jī)制來提高空間查詢與分析速度,保證數(shù)據(jù)瀏覽的順暢性。Spatialite for Android是移動(dòng)端離線存儲(chǔ)的依賴庫,在Android Studio中以Moudle的方式將Spatialite for Android加入到工程中,便可使用里面的API接口。
3? 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)設(shè)計(jì)
根據(jù)銅仁市國土資源“一張圖”項(xiàng)目需求以及數(shù)據(jù)保密要求,本系統(tǒng)設(shè)計(jì)為離線模式,使用Android Studio平臺(tái)進(jìn)行開發(fā),可運(yùn)行于Android6.0以上的Android移動(dòng)設(shè)備上。系統(tǒng)架構(gòu)如圖1所示。
①數(shù)據(jù)層:數(shù)據(jù)層包括“一張圖”應(yīng)用系統(tǒng)的三大數(shù)據(jù)庫基礎(chǔ)數(shù)據(jù)庫、規(guī)劃數(shù)據(jù)庫、專題數(shù)據(jù)庫。具體包含的數(shù)據(jù)如圖2所示。
②數(shù)據(jù)管理層:因系統(tǒng)運(yùn)行在無網(wǎng)絡(luò)的環(huán)境中,且平板電腦的性能有限,直接渲染展示空間數(shù)據(jù)會(huì)出現(xiàn)卡頓或死機(jī)的問題。因此,對(duì)于非編輯類的空間數(shù)據(jù)需通過ArcGIS軟件工具將其進(jìn)行渲染配圖,并制作為離線瓦片數(shù)據(jù)(.tpk),在放進(jìn)系統(tǒng)中使用。而需要編輯存儲(chǔ)的空間數(shù)據(jù)通過Spatialite GUI導(dǎo)入到空間數(shù)據(jù)中形成離線編輯存儲(chǔ)數(shù)據(jù)庫(.sqlite)。
③系統(tǒng)應(yīng)用層:根據(jù)需求調(diào)研,“一張圖”系統(tǒng)的功能包括工具、圖層管理、法律法規(guī)、其他四大功能模塊。如圖3所示。工具模塊包括數(shù)據(jù)編輯、分析、查詢、導(dǎo)出和量測功能。1)編輯:對(duì)供地?cái)?shù)據(jù)和執(zhí)法巡查數(shù)據(jù)進(jìn)行編輯,新增數(shù)據(jù);2)分析:統(tǒng)計(jì)分析某范圍內(nèi)的土地利用情況和各類建設(shè)用地管制面積;3)查詢:按字段屬性模糊查詢、統(tǒng)計(jì)與關(guān)鍵字相關(guān)的供地信息;4)導(dǎo)出:導(dǎo)出各類數(shù)據(jù)的屬性信息至 Excel 表格中;5)量測:提供長度、面積兩種量測方式。定位功能通過GPS定位采集當(dāng)前空間位置信息,并記錄形成工作軌跡路徑,添加屬性信息保存至空間數(shù)據(jù)庫中。
3.2 系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)使用Android Studio開發(fā)工具進(jìn)行JAVA原生開發(fā)編程,引入ArcGIS for Android 和 Spatialite for Android依賴庫,借助她們封裝的各類API接口實(shí)現(xiàn)上述的系統(tǒng)功能。系統(tǒng)運(yùn)行在離線環(huán)境中,因此前期需要對(duì)數(shù)據(jù)進(jìn)行處理,才能被系統(tǒng)調(diào)用。數(shù)據(jù)處理流程如圖4所示。由于ArcGIS for Android暫不支持矢量文件(.shp)文件的直接編輯修改,所以需要將矢量文件通過Spatialite GUI工具將其導(dǎo)入Spatialite數(shù)據(jù)庫中,在將其拷貝至移動(dòng)設(shè)備上使用。在調(diào)用時(shí),因?yàn)镾patialite是以WKT(Well-Known-Text)格式進(jìn)行存儲(chǔ),而ArcGIS for Android以GeoJson數(shù)據(jù)格式進(jìn)行存儲(chǔ),在展示Spatialite數(shù)據(jù)庫數(shù)據(jù)時(shí)需要將其進(jìn)行格式轉(zhuǎn)換,轉(zhuǎn)換為ArcGIS for Android API可讀取的數(shù)據(jù)格式,然后再地圖上進(jìn)行可視化渲染。
系統(tǒng)編輯功能主要是對(duì)數(shù)據(jù)進(jìn)行新增和更新,操作的對(duì)象是.sqlite文件,首先調(diào)用ArcGIS for Android的圖形繪制接口,實(shí)現(xiàn)再地圖上繪制地理信息單元(點(diǎn)、線、面),然后錄入相應(yīng)的屬性信息,保存至本地?cái)?shù)據(jù)庫中。數(shù)據(jù)庫中的數(shù)據(jù)能夠直接在系統(tǒng)中以.xls的格式進(jìn)行輸出;或者將數(shù)據(jù)拷貝至電腦端通過Spatialite GIS工具進(jìn)行瀏覽或?qū)С?,進(jìn)行其他應(yīng)用。系統(tǒng)編輯和空間分析功能如圖5所示。
4? 結(jié)束語
本文研究了ArcGIS for Anfroid 和Spatialite空間數(shù)據(jù)庫技術(shù),研究了國土資源“一張圖”離線移動(dòng)端系統(tǒng)的實(shí)現(xiàn)方法,并通過Android Studio開發(fā)工具編程完成了銅仁市國土資源“一張圖”移動(dòng)辦公系統(tǒng),該系統(tǒng)用于該地用地管理工作中,一定程度上提高了工作效率。但是該系統(tǒng)是離線版本,運(yùn)行在無網(wǎng)絡(luò)的環(huán)境中,因此使用上存在一定的局限性,比如數(shù)據(jù)更新不及時(shí),無法與PC端聯(lián)動(dòng)起來的。由于國土數(shù)據(jù)涉密原因,又不能直接將數(shù)據(jù)放置在互聯(lián)網(wǎng)中運(yùn)行,所以,下一步,本人將研究數(shù)據(jù)加密等方面的技術(shù),在保證數(shù)據(jù)安全的情況下研究在移動(dòng)端在線版系統(tǒng),提高數(shù)據(jù)更新失效,拓展系統(tǒng)的實(shí)用面。
參考文獻(xiàn):
[1]張海瑞,吳學(xué)饒,蘭小機(jī).基于 ArcGIS for Android野外實(shí)習(xí)數(shù)據(jù)采集與導(dǎo)航系統(tǒng)的實(shí)現(xiàn)[J].測繪工程,2015,24(03):36-39.
[2]關(guān)昆,馬駿,楊曉峰,肖康. 基于 Spatialite 的空間數(shù)據(jù)組織管理與應(yīng)用開發(fā).城市勘測,2014(02):27-29.
[3]陳俊明.Spatialite 在移動(dòng)端離線數(shù)據(jù)解決方案中的應(yīng)用研究[J].地理空間信息,2015,13(2):68-70.
[4]夏君,和世開,魯月新.基于Spatialite的移動(dòng)端“一張圖”系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 測繪通報(bào),2019(S2):281-284.
[5]Spatialite Cookbook. https://www.gaia-gis.it/gaia-sins/spatialite-cookbook [EB/OL],2011-01-28.