摘 要:【目的】為滿足地理實(shí)習(xí)中空間數(shù)據(jù)實(shí)時采集與管理的需求,提升野外實(shí)習(xí)工作效率,研發(fā)了一套基于Android平臺的地理實(shí)習(xí)數(shù)據(jù)采集系統(tǒng)?!痉椒ā吭诘乩韺?shí)習(xí)教學(xué)需求分析的基礎(chǔ)上,以Android智能手機(jī)為移動終端,基于客戶端—服務(wù)器體系結(jié)構(gòu)的分布式模式,利用ArcGIS Runtime SDK for Android二次開發(fā)接口集成Android開發(fā)、物聯(lián)網(wǎng)數(shù)據(jù)實(shí)時采集、SQLite數(shù)據(jù)庫以及移動地圖展示等移動GIS技術(shù)進(jìn)行系統(tǒng)設(shè)計與研發(fā)?!窘Y(jié)果】實(shí)現(xiàn)了用戶登錄、地圖瀏覽、地理位置獲取與顯示、地理要素采集與管理、現(xiàn)場照片上傳、退出系統(tǒng)等功能,并應(yīng)用于地理實(shí)習(xí)教學(xué)。【結(jié)論】該系統(tǒng)不僅可用于地理實(shí)習(xí)、野外調(diào)查等場景,而且可用于實(shí)時采集、存儲和顯示地理數(shù)據(jù)。此外,該系統(tǒng)還具有較好的可擴(kuò)展性和兼容性,也可以適用于其他外業(yè)工作場景。
關(guān)鍵詞:Andriod平臺;地理數(shù)據(jù)采集;移動GIS;GIS應(yīng)用系統(tǒng);地理實(shí)習(xí)教學(xué)
中圖分類號:G633.55;K909 " 文獻(xiàn)標(biāo)志碼:A " 文章編號:1003-5168(2024)12-0014-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2024.12.003
Design of a Field Data Collection System for Geographical Practice Based on Android Platform
WANG Jie1 JIANG Dejian1 ZHANG Guanhong2
(1.College of Resources and Environmental Engineering, "Hefei "230601, China;
2. Inner Mongolia Electric Power Survey amp; Design Institute, Hohhot "010010, China)
Abstract:[Purposes] In order to meet the needs of real-time collection and management of spatial data in geographical internships, and to improve the efficiency of field internships effectively , a geographic practice data acquisition system based on Android platform is developed.[Methods] Based on the analysis of the needs of geography practice teaching, the Android smart phone is used as the mobile terminal. Based on the distributed mode of client-server architecture, the ArcGIS Runtime SDK for Android secondary development interface is used to integrate GIS technologies, such as "Android development, real-time data collection of Internet of Things, SQLite database and mobile map display, so as to design and develop the system. [Findings] This system realizes functions such as user login, map browsing, geographical location acquisition and display, geographical element collection and management, on-site photo upload, and exit from the system, and is used in geography practice teaching.[Conclusions] It can be used in scenarios such as geographical internships and field surveys to collect, store and display geographical data in real time.In addition, this system also has good scalability and compatibility, and can also be applied to other field work scenarios.
Keywords: Android platform; Geographical data collection; Mobile GIS; GIS application system; Geography practice
0 引言
地理實(shí)習(xí)作為連接課堂教學(xué)與非課堂教學(xué)的橋梁,對于培養(yǎng)地理類專業(yè)學(xué)生的理論知識與實(shí)踐技能具有重要作用。在地理實(shí)習(xí)教學(xué)中,地理數(shù)據(jù)采集是現(xiàn)場獲取數(shù)據(jù)的必要手段,可為地理學(xué)領(lǐng)域研究提供強(qiáng)有力的支持。傳統(tǒng)的地理數(shù)據(jù)外業(yè)采集大多依靠專業(yè)測繪設(shè)備,不僅設(shè)備體積大、重量重,而且需要專業(yè)人員進(jìn)行操作和維護(hù),難以滿足大眾化的數(shù)據(jù)采集需求。隨著移動互聯(lián)網(wǎng)的快速發(fā)展和移動設(shè)備的廣泛應(yīng)用,地理信息的采集和處理逐漸成為手機(jī)和平板電腦等移動設(shè)備的主要應(yīng)用之一[1]?,F(xiàn)代的移動設(shè)備不僅配備了精度更高、更快捷的定位系統(tǒng),而且夾雜社交、傳媒、辦公、游戲等多重應(yīng)用的特點(diǎn),可以輕易地進(jìn)行地理信息采集,便于大規(guī)模地收集數(shù)據(jù)[2]。因此,研發(fā)基于移動設(shè)備的地理實(shí)習(xí)外業(yè)采集系統(tǒng),既可以提高地理數(shù)據(jù)的采集和處理效率,又可以加強(qiáng)大眾對地理信息的參與度,具有高度的應(yīng)用價值和推廣前景[3]。
作為基于Linux系統(tǒng)的自由及開放源代碼的操作系統(tǒng), Android平臺已廣泛應(yīng)用于智能手機(jī)和平板電腦等移動設(shè)備,其最大優(yōu)勢就是開放性。國外相關(guān)機(jī)構(gòu)推出了多個基于Android 平臺的移動GIS程序,如Google Maps API、Mapbox for Android、ArcGIS Runtime SDK for Android、GeoMobile for Android等,這些系統(tǒng)相當(dāng)成熟,可以提供高精準(zhǔn)性和高可視化的地圖展示[4]。國內(nèi)一些GIS軟件廠商也開始重視基于Android平臺的移動GIS產(chǎn)品,如SuperMap移動GIS、南京數(shù)字地球等,并已經(jīng)推行出一些關(guān)于互聯(lián)網(wǎng)導(dǎo)航應(yīng)用、交叉路口數(shù)據(jù)等方面的解決方案[5]。但是移動GIS技術(shù)在我國還存在一些不足,如移動GIS技術(shù)應(yīng)用技能的普及率較低,很多地理工作者對移動GIS應(yīng)用仍存在較大的陌生感和操作難度,并且在地理實(shí)習(xí)教學(xué)中的應(yīng)用也并不多見。
為了滿足地理實(shí)習(xí)中數(shù)據(jù)實(shí)時采集與管理的需求,本研究基于Android平臺開發(fā)一款輕便、易用、低成本的地理實(shí)習(xí)外業(yè)數(shù)據(jù)采集系統(tǒng),旨在探索面向移動設(shè)備的地理實(shí)習(xí)外業(yè)采集系統(tǒng)開發(fā)方法,從而提高地理數(shù)據(jù)的采集與管理效率。該系統(tǒng)的設(shè)計目標(biāo)是為了方便實(shí)習(xí)師生在山區(qū)、城市等場景中開展實(shí)時定位、矢量數(shù)據(jù)、屬性數(shù)據(jù)和照片采集,實(shí)現(xiàn)數(shù)據(jù)存儲和快速檢索,并支持?jǐn)?shù)據(jù)采集過程的多種選擇、數(shù)據(jù)導(dǎo)入導(dǎo)出、數(shù)據(jù)格式設(shè)置等功能。
1 系統(tǒng)設(shè)計與關(guān)鍵技術(shù)
1.1 用戶需求分析
地理實(shí)習(xí)數(shù)據(jù)采集系統(tǒng)的用戶主要是地理學(xué)類專業(yè)的教師和學(xué)生。在外業(yè)實(shí)習(xí)中需要一個高效、實(shí)用的工具來采集與管理空間數(shù)據(jù),主要需求如下。
①快速采集和管理數(shù)據(jù)。用戶需要實(shí)時采集和管理各種實(shí)習(xí)數(shù)據(jù),包括地理位置、圖形數(shù)據(jù)、屬性數(shù)據(jù)等。因此,需要系統(tǒng)具備高效的采集方式和數(shù)據(jù)管理功能。
②離線采集和數(shù)據(jù)同步。由于在野外經(jīng)常沒有穩(wěn)定的網(wǎng)絡(luò)信號,因此,需要系統(tǒng)具備支持離線采集和數(shù)據(jù)同步的功能,以確保采集的數(shù)據(jù)不會丟失。當(dāng)設(shè)備恢復(fù)到網(wǎng)絡(luò)狀態(tài)時,數(shù)據(jù)可以自動同步到服務(wù)器或其他設(shè)備上。
③數(shù)據(jù)可視化和分析。用戶需要一系列實(shí)用分析工具和可視化方式,因此,需要系統(tǒng)可以提供各種數(shù)據(jù)展示圖表、圖形和地圖等,使用戶更好地理解、分析和展示數(shù)據(jù)。
1.2 系統(tǒng)結(jié)構(gòu)設(shè)計
ArcGIS API for Android 使用 Java 構(gòu)建多種應(yīng)用程序,利用 ArcGIS Server 提供的強(qiáng)大制圖、地理編碼、地理處理和自定義功能,將其部署到 Android平臺上。該系統(tǒng)通過 ArcGIS API for Android 的二次開發(fā)接口實(shí)現(xiàn)地圖在 Android 設(shè)備上的瀏覽、查詢、編輯和定位等功能。其中,通過 Android 提供的一套關(guān)于地理信息和 SQLite 數(shù)據(jù)庫相互轉(zhuǎn)換解析的方案,實(shí)現(xiàn)了對要素屬性的增刪改查[6]。系統(tǒng)結(jié)構(gòu)設(shè)計如圖1所示。
①調(diào)用 ArcGIS API for Android提供的 GPS 定位相關(guān)類庫 LocationDisplay,通過 Android移動平臺獲取地物目標(biāo)的地理位置信息,并在地圖上進(jìn)行顯示。
②實(shí)現(xiàn)地理要素空間位置和 SQLite 數(shù)據(jù)庫中地理位置字段的相互轉(zhuǎn)換,方便存儲和渲染顯示工程中繪制的地理要素。
③通過 Android 組件之間傳遞要素唯一 ID 的方式實(shí)現(xiàn)對要素屬性的查詢、編輯、保存等功能,進(jìn)而實(shí)現(xiàn)移動數(shù)據(jù)的在線編輯功能。
④利用 Android 平臺的多媒體采集功能,拍攝現(xiàn)場照片并與地理要素進(jìn)行關(guān)聯(lián),將多媒體信息與地理要素信息融合,給予地理信息更豐富的表達(dá)。
1.3 采用的關(guān)鍵技術(shù)
1.3.1 Android開發(fā)技術(shù)。需要掌握J(rèn)ava或Kotlin的編程知識、Android SDK的相關(guān)API和框架、Android Studio等開發(fā)工具的使用,以及對應(yīng)用界面設(shè)計、網(wǎng)絡(luò)通信、多媒體等方面的理解。
1.3.2 數(shù)據(jù)采集技術(shù)。地理學(xué)數(shù)據(jù)的采集方法可以是實(shí)地測量、探測,也可以通過各種儀器、監(jiān)控設(shè)備等獲取數(shù)據(jù)。為支持離線數(shù)據(jù)采集和多種數(shù)據(jù)格式,系統(tǒng)需要掌握多種數(shù)據(jù)采集技術(shù),如GPS、攝像頭、錄音和傳感器等。
1.3.3 數(shù)據(jù)存儲技術(shù)。Android數(shù)據(jù)存儲技術(shù)包括內(nèi)部存儲、外部存儲、SQLite數(shù)據(jù)庫等多種方式。通過相關(guān)存儲技術(shù),開發(fā)者可以在應(yīng)用中對數(shù)據(jù)進(jìn)行存儲、讀取和更新。
1.3.4 地圖展示技術(shù)。ArcGIS Runtime for Android作為一種地理信息應(yīng)用程序開發(fā)框架,通過提供一組完整的API,幫助開發(fā)人員構(gòu)建具有地理感知功能的應(yīng)用程序,不僅支持離線和在線數(shù)據(jù)交互[7],而且提供集成開發(fā)環(huán)境和示例代碼等工具。
2 系統(tǒng)功能實(shí)現(xiàn)
2.1 用戶登錄
在Android平臺上實(shí)現(xiàn)用戶登錄,需要進(jìn)行以下步驟。
①設(shè)計用戶登錄頁面。通過activity元素和布局文件制作用戶登錄界面,包括用戶名和密碼輸入框、登錄按鈕等。
②實(shí)現(xiàn)登錄邏輯。登錄邏輯一般在Activity的Java文件中實(shí)現(xiàn)。當(dāng)用戶單擊登錄按鈕時,應(yīng)檢查用戶名和密碼是否正確,并給出相應(yīng)提示。
③視反饋。登錄成功之后需要提供用戶視覺反饋,如跳轉(zhuǎn)到主界面或顯示“登錄成功”。同時,對登錄失敗的情況也需要進(jìn)行相應(yīng)提示。
2.2 地圖交互
2.2.1 地圖瀏覽。天地圖是一種常用的在線地圖服務(wù),可以提供衛(wèi)星影像、地形圖、行政區(qū)劃、路網(wǎng)、地名等各種地圖要素數(shù)據(jù)。在Android應(yīng)用開發(fā)中,調(diào)用天地圖可以為應(yīng)用系統(tǒng)添加基礎(chǔ)地圖數(shù)據(jù)。本研究通過定義 MapView 的事件來實(shí)現(xiàn)不同的地圖操作;調(diào)用 GPS 模塊,實(shí)現(xiàn)地圖定位如圖2所示。圖上定位點(diǎn)即是用戶當(dāng)前所在位置,不用再通過傳統(tǒng)的參照物方式將自己在圖上定位,極大地方便了采集工作,并提供了更人性化的交互。
2.2.2 地理坐標(biāo)獲取與顯示。LocationDisplay是ArcGIS Runtime SDK 中用于地圖定位的類函數(shù),提供了在地圖上顯示位置、自動平移及其他與位置相關(guān)的功能。本研究利用LocationDisplay 將設(shè)備中 GPS 定位功能與地圖應(yīng)用程序集成起來,并實(shí)現(xiàn)了以下功能。
①顯示位置。LocationDisplay 可以將設(shè)備的位置信息在地圖上實(shí)時顯示,并根據(jù)用戶需求設(shè)置經(jīng)度、緯度、精度、速度、方向等信息的顯示如圖3所示。
②自動平移。LocationDisplay 可以根據(jù)用戶所設(shè)置的指定位置,將地圖位置自動平移到該位置。
③監(jiān)聽位置更新事件。可以通過(LocationDisplay.addLocationChangedListener)方法來監(jiān)聽位置更新事件,根據(jù)需要更新地圖或其他操作。
該系統(tǒng)中地理坐標(biāo)的顯示是通過AlertDialog類創(chuàng)建對話框來實(shí)現(xiàn);點(diǎn)擊獲取地理坐標(biāo)則是通過MapView的screenToLocation和locationToScreen方法來實(shí)現(xiàn)。其中,screenToLocation方法將屏幕坐標(biāo)轉(zhuǎn)換成地理坐標(biāo);locationToScreen方法則將地理坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo)。
2.3 地理要素采集與管理
2.3.1 新增要素。GraphicsOverlay 是 ArcGIS Runtime SDK 提供的用于在地圖上繪制與符號化圖形、文本和鏈接的圖層類型。 GraphicsOverlay 是一個虛擬圖層,不會在地圖中創(chuàng)建實(shí)際圖層,而是作為 MapView 中的元素添加和顯示。
SQLite 是一個輕量級的關(guān)系型嵌入式數(shù)據(jù)庫,由于其占用空間小、運(yùn)行速度快等優(yōu)點(diǎn),被廣泛用于存儲和管理地理空間和非空間信息。在 Android 應(yīng)用程序中,地理要素以Shapefile、GeoJSON、KML 等形式存儲在 SQLite 數(shù)據(jù)庫中。Android 通過使用開放式地理空間數(shù)據(jù)庫連接標(biāo)準(zhǔn),管理和操作 SQLite 數(shù)據(jù)庫中的地理空間數(shù)據(jù)。在創(chuàng)建SQLite數(shù)據(jù)庫的基礎(chǔ)上,本研究將采集的地理要素更新到SQlite數(shù)據(jù)庫中,應(yīng)用程序界面如圖4所示。
在采集地理位置的同時,本研究還通過屬性編輯框錄入地理實(shí)體的特征數(shù)據(jù),包括但不限于位置、形態(tài)、屬性、幾何等信息。通過此方式可以建立點(diǎn)、線、面等空間要素的屬性關(guān)系,有助于后續(xù)的地理信息數(shù)據(jù)分析和處理。
2.3.2 編輯要素。本研究在Android平臺上實(shí)現(xiàn)地理要素編輯功能,包括對地理要素的選擇、修改和刪除等操作。通過使用Android設(shè)備上的GPS、觸控屏幕等傳感器,并結(jié)合Sqlite數(shù)據(jù)庫,用戶可以實(shí)地采集地理信息并實(shí)時編輯。
2.4 多媒體信息的采集
本研究還利用Android設(shè)備提供的拍照、錄音、錄像等功能采集多媒體信息,并將其與地理實(shí)體進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)豐富的地理信息數(shù)據(jù)采集和管理。采集的這些數(shù)據(jù)可以用于構(gòu)建地圖數(shù)據(jù)庫、GIS空間分析和可視化等用途,具體如圖5所示。照片命名通過獲取系統(tǒng)當(dāng)前時間的方式,并以此字符串作為關(guān)聯(lián)要素和地理場景照片的依據(jù)。
3 系統(tǒng)應(yīng)用與維護(hù)
系統(tǒng)應(yīng)用和維護(hù)在軟件生命周期中是非常重要的環(huán)節(jié),涉及軟件的使用、更新和維護(hù)等多個方面[8]。在軟件使用階段,用戶將軟件安裝到Android設(shè)備中,可在戶外或者野外的環(huán)境中使用地圖瀏覽、地理位置獲取與顯示、地理要素采集與管理、照片上傳等功能采集和獲取地理要素。采集到的要素屬性包括地理坐標(biāo)位置、幾何屬性值(線要素長度、面要素面積)和對應(yīng)的影像數(shù)據(jù)。在外業(yè)工作結(jié)束后,將采集到的數(shù)據(jù)導(dǎo)出,并轉(zhuǎn)換為常用的Shapefile文件用于后續(xù)的空間分析和制圖。
在軟件更新階段,本研究通過該軟件在安徽大學(xué)地理實(shí)習(xí)教學(xué)中的實(shí)際使用情況,收集實(shí)習(xí)師生的反饋和建議,進(jìn)而改進(jìn)和優(yōu)化應(yīng)用。在軟件的維護(hù)和支持階段包括錯誤修復(fù)、功能擴(kuò)展、性能優(yōu)化等方面。同時,在該階段還需要根據(jù)實(shí)際需求,不斷地更新和擴(kuò)展應(yīng)用的功能,以滿足新的用戶需求。
本研究將不斷關(guān)注應(yīng)用程序的用戶使用和反饋情況,并針對性地改進(jìn)和優(yōu)化應(yīng)用程序,同時也要及時地維護(hù)、更新和保障應(yīng)用系統(tǒng)的安全性和可靠性。
4 結(jié)語
本研究以Android平臺作為移動終端開發(fā)環(huán)境,研發(fā)了基于Android平臺的地理實(shí)習(xí)數(shù)據(jù)采集系統(tǒng),主要用于地理實(shí)習(xí)教學(xué)中師生對地理要素的采集和管理,大大提高了地理數(shù)據(jù)采集質(zhì)量與效率。
由于Android平臺是一款開放性操作系統(tǒng),可以提供用于位置定位的相關(guān)類庫,使得在該平臺上獲取地理位置變得更加容易。本研究借助ArcGIS API for Android二次開發(fā)類庫,在移動設(shè)備上實(shí)現(xiàn)了地圖的基本操作,如瀏覽、查詢、編輯和定位等。同時,基于Android系統(tǒng)的移動GIS開發(fā)模塊具有很高的自主性和靈活性,可以利用系統(tǒng)自帶的多媒體等功能。通過在地理信息數(shù)據(jù)庫中添加圖片、音頻、視頻等信息,可以將各種多媒體數(shù)據(jù)與傳統(tǒng)空間位置、屬性信息的GIS數(shù)據(jù)關(guān)聯(lián)結(jié)合,極大地豐富了地理信息的內(nèi)涵,使人能夠從更多的維度去體驗(yàn)和應(yīng)用地理空間信息,從而為不同領(lǐng)域的外業(yè)數(shù)據(jù)采集與管理以及地理信息大眾化服務(wù)提供了便捷的工具。
參考文獻(xiàn):
[1]曹曉航. GPS車載導(dǎo)航系統(tǒng)技術(shù)趨勢淺析[J]. 現(xiàn)代測繪, 2006, 29(1): 14-17.
[2]陳踴, 黎剛, 徐潔. 基于ArcGIS Mobile的移動GIS開發(fā)研究[J]. 現(xiàn)代商貿(mào)工業(yè), 2009, 21(23): 301-302.
[3]周百泰, 孟凡效, 潘宇明, 等. 基于北斗RTK的安卓管網(wǎng)GIS系統(tǒng)開發(fā)[J]. 測繪與空間地理信息, 2023, 46(5): 117-119,123.
[4]歐陽桂秀. 基于Java和MySQL的數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].信息記錄材料, 2022, 23(9): 240-242.
[5]顧陳浩. 基于移動GIS的自然資源巡查和執(zhí)法管理平臺設(shè)計與實(shí)現(xiàn)[J].測繪與空間地理信息, 2023, 46(5):128-130,134.
[6]白昕. 基于GIS技術(shù)的歷史文化遺產(chǎn)普查登記系統(tǒng)設(shè)計與實(shí)現(xiàn):以福州古厝為例[J]. 城市勘測, 2023, 196(2):31-34.
[7]王飛, 蔡忠亮, 蔣子捷,等. 移動環(huán)境下的矢量地圖快速顯示方法[J].測繪地理信息, 2018, 43(4): 111-115.
[8]劉善偉, 萬劍華, 祝德顯. 移動GIS技術(shù)輔助下的野外實(shí)踐教學(xué)新模式[J].實(shí)驗(yàn)技術(shù)與管理, 2017, 34(12): 186-188,213.