李 怡
(江西理工大學土木與測繪工程學院,342300,江西,贛州)
草海濕地是貴州最大的天然高原,也是我國最大的巖溶構造湖,目前草海水面的平均海拔高度為2 171.7 m,被譽為“高原明珠”[1]。由于其生態(tài)經濟、社會價值較高,給人類的生活帶來了不可替代的作用,因此具有重要的生態(tài)、環(huán)境和經濟價值[2]。傳統(tǒng)的野外調查方式存在時間長、效率低、數(shù)據(jù)精度低等問題,而移動GIS技術的應用可有效地提高植物資源數(shù)據(jù)采集的效率和精度[3-5]。近幾年來,隨著移動GIS的發(fā)展,Andriod智能手機的普及,GPS技術的成熟,基于Andriod平臺的數(shù)據(jù)采集系統(tǒng)也越來也廣泛[6-8]。
國內外研究者們開發(fā)了多種植物資源數(shù)據(jù)采集系統(tǒng),利用移動GIS技術在移動設備上實現(xiàn)數(shù)據(jù)的采集、存儲、處理和展示。ESRI公司針對基于ArcGIS for Android的數(shù)據(jù)采集系統(tǒng)一直處于前沿研究,提供了二次開發(fā)工具、定位導航、數(shù)據(jù)采集等數(shù)據(jù)處理方案,為開發(fā)者提供了強大的開發(fā)環(huán)境,方便實現(xiàn)各種功能的開發(fā)[9-10]。國內在基于Android平臺的數(shù)據(jù)采集系統(tǒng)技術和GIS技術方面都有深入的研究和發(fā)展,廣泛應用于各行各業(yè)[11]。UCMap公司提供的Android平臺下移動GIS解決方案早在2009年跬步科技就推出了UCMap SDK for Android的移動GIS開發(fā)組件,也是國內最早推出基于Android平臺的移動GIS組件[12]。
本文的植物資源數(shù)據(jù)采集系統(tǒng)是在Android平臺下使用Java開發(fā)語言來完成草海濕地植物資源數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)。該系統(tǒng)可自由加載草海濕地的DOM底圖數(shù)據(jù),以同步采集植物資源數(shù)據(jù)。Android平臺的開發(fā)體系架構主要組成部分見表1。
表1 Android體系架構
本系統(tǒng)設計使用Android studio為開發(fā)環(huán)境、SDK軟件開發(fā)工具包、JDK工具及ADT工具,以Java為開發(fā)語言,Android SDK為移動開發(fā)組件。
1.2.1 平臺搭建準備 主要開發(fā)工具及作用與用途見表2。
表2 開發(fā)工具的作用與用途
1.2.2 環(huán)境安裝配置流程 Android開發(fā)環(huán)境的部署有以下5個步驟:1)下載并安裝JDK;2)配置Windows上的JDK環(huán)境變量;3)安裝Android studio;4)安裝Android SDK;5)安裝ADT插件。具體流程如圖1所示。
圖1 開發(fā)環(huán)境部署流程
在Android平臺開發(fā)中進行數(shù)據(jù)存儲主要有以下幾種方式:1)使用Shared Preferences存儲數(shù)據(jù);2)使用文件存儲數(shù)據(jù);3)使用SQLite數(shù)據(jù)庫存儲數(shù)據(jù);4)使用Content Provider存儲數(shù)據(jù);5)使用網(wǎng)絡存儲數(shù)據(jù)。
本系統(tǒng)設計的野外植物資源數(shù)據(jù)采集系統(tǒng)中關于用戶信息、采集的數(shù)據(jù)信息及一些基本的植物資源的屬性數(shù)據(jù)等信息,均采用了SQLite數(shù)據(jù)庫來存儲和管理的。
2.2.1 功能需求 根據(jù)數(shù)據(jù)采集的相關規(guī)程和要求,在業(yè)務功能上應滿足如下要求:1)實現(xiàn)不同的采集方式采集植物資源數(shù)據(jù):樣點法、樣方法、樣線法等;2)實現(xiàn)數(shù)據(jù)采集的功能:拍照、拍攝樣點,記錄樣點的生態(tài)位置坐標信息等;3)調查數(shù)據(jù)的維護;4)地圖查詢及線路回溯。
2.2.2 數(shù)據(jù)需求 在數(shù)據(jù)庫中需要存儲數(shù)據(jù)的相關字典數(shù)據(jù),如層次表、生境表等。其次是數(shù)據(jù)底圖,通過加載底圖數(shù)據(jù)能夠快速定位到采集樣點的位置。對于植物資源外調系統(tǒng)功能結構如圖2所示。
圖2 系統(tǒng)功能結構
本系統(tǒng)的設計遵循層次性、模塊性等設計原則,將草海濕地植物資源的數(shù)據(jù)采集系統(tǒng)分成3個層次:終端應用層、數(shù)據(jù)訪問層、數(shù)據(jù)存儲層,5個模塊:數(shù)據(jù)采集(拍照)、本地訪問、SQLite數(shù)據(jù)庫、GNSS定位(地圖定位)、自由加載底圖(底圖操作)。
主要邏輯設計思路包括以下步驟:1)打開GNSS系統(tǒng)獲取信號;2)根據(jù)GNSS定位到采集對象并拍照采集;3)存儲采集數(shù)據(jù)。
在移動客戶端的幾個主要功能包括:1)GNSS定位功能,采集員地理位置信息和采集目標經緯度坐標(WGS-84,B,L)的實時點位數(shù)據(jù),并將其轉換成平面坐標(X,Y);2)拍照功能,記錄植物資源數(shù)據(jù)屬性信息并存儲在數(shù)據(jù)庫中;3)加載底圖功能,加載草海的在線地圖以幫助采集員更有效地判斷所采集目標數(shù)據(jù)的各種信息。
本文基于Android操作系統(tǒng)和SQLite數(shù)據(jù)庫進行草海濕地植物資源移動數(shù)據(jù)采集系統(tǒng)的設計和實現(xiàn)。進行了需求分析和數(shù)據(jù)庫設計步驟,包括概念結構和邏輯結構設計,并進行了數(shù)據(jù)庫的創(chuàng)建、編制和調試。根據(jù)系統(tǒng)的功能結構,數(shù)據(jù)庫中的實體可以分為兩類:字典表和業(yè)務表。本系統(tǒng)設計的植物資源數(shù)據(jù)庫E-R模型圖如圖3所示。
圖3 E-R模型
根據(jù)上述E-R模型,可總結出該系統(tǒng)包含的字典表類型和各字典表包含的字段,及業(yè)務采集的業(yè)務表。各個字典表的字段見表3至表9。
表3 層次表
表4 物候期表
表5 受威脅因素表
表6 生境表
表7 生態(tài)位置表
表8 用途表
表9 采集人信息表
植物又分為不同的科屬種,種是植物種類的最小區(qū)分單位,在科的上級還有界門綱目,本系統(tǒng)的設計只限于植物的科屬種。物種表、屬名表、科種表見表10至表12。
表10 物種表表
表11 屬名表
表12 科名表
對于數(shù)據(jù)采集,本系統(tǒng)為采集員設計提供了樣點采集法、樣方采集法和樣線采集法。
樣點法調查表存儲數(shù)據(jù)庫中各個樣點的數(shù)據(jù),是通過選中一個樣點目標采集多個角度的樣點數(shù)據(jù),考慮到不同季節(jié)下形態(tài)、顏色等變化。單獨采集某一個樣點數(shù)據(jù)時,樣點編號自動生成。在樣方范圍內或樣線范圍內采集多個樣點時,需手動輸入樣點編號,2種樣點表結構相同,見表13。
表13 樣點表
樣方調查表是一種數(shù)據(jù)存儲表格,其方法是通過確定調查范圍和樣方邊長,選擇采集起點并根據(jù)方位確定樣方的4個點,然后采集每個頂點的樣點的4個植物資源數(shù)據(jù)。這種方法是針對地形地貌特征而設計的,可以對樣方內的植物資源進行調查記錄,詳見表14。
表14 樣方表
樣線調查表存儲了采用樣線法調查得到的所有數(shù)據(jù),該方法通過選定地段并在兩側選取一定距離范圍,沿著該線段進行數(shù)據(jù)采集,詳見表15。
表15 樣線表
每個樣點都以照片的形式存儲在數(shù)據(jù)庫中,并以路徑的方式進行存儲。在照片存儲表中,一個樣點號可以對應多張照片,因此這兩張表之間形成了一對多的關系。照片存儲表中的照片ID是主鍵,而樣點表中的樣點編號是外鍵,用于建立這兩張表之間的聯(lián)系。此外,照片存儲表也是數(shù)據(jù)庫中的字典表,見表16。
表16 照片表
通過以上的數(shù)據(jù)表設計,完成植物資源數(shù)據(jù)的采集后,可將數(shù)據(jù)存儲在一個數(shù)據(jù)集表中。這個表只需要填寫采集數(shù)據(jù)的ID號即可,這樣設計的好處是當采集數(shù)據(jù)發(fā)生變化時,只需修改對應數(shù)據(jù)表中的字段內容,而ID號不會變化,從而減少了數(shù)據(jù)采集的工作量,提高效率。
安卓開發(fā)中的布局方式,包括線性布局、相對布局、表格布局、絕對布局和幀布局,布局方式的不同會影響整個頁面的布局和控件的排列方式,其中每種布局方式都有不同的屬性和特點。友好的界面設計可以簡化操作,提高用戶體驗。
本系統(tǒng)的設計主要運用了安卓的線性布局和相對布局。根據(jù)系統(tǒng)的功能需求,對其界面設計主要為如下兩大模塊:1)主界面;2)數(shù)據(jù)采集界面。主界面的設計簡圖如圖4所示,采集方法的界面如圖5所示。
圖4 主界面簡圖
圖5 采集方法
采集信息之前需要手動將采集員信息的信息錄入數(shù)據(jù)庫中,然后再進行拍照采集數(shù)據(jù),如圖6所示。
圖6 采集界面和采集人員信息
本系統(tǒng)的界面布局主要采用線性布局和相對布局,線性布局可實現(xiàn)水平或垂直排列,通過“android orientation”屬性來控制;相對布局則通過指定ID號來建立與其他組件的位置關系。實現(xiàn)布局的關鍵代碼,如圖7所示。
圖7 界面布局關鍵代碼
GNSS是獲取樣點位置坐標,通過initLocationClicntOption類來初始化定位相關參數(shù),設置完成之后添加定位監(jiān)聽器。定位功能實現(xiàn)的關鍵代碼,如圖8所示。
圖8 定位實現(xiàn)關鍵代碼
拍照功能主要實現(xiàn)步驟是先用urfaceHolder實現(xiàn)對SurfaceView的回調,然后對SurfaceCreate函數(shù)進行重寫,實現(xiàn)對Camera的初始化等一系列工作。最后再用SurfaceChange對Camera進行一系列初始化。拍照功能實現(xiàn)的關鍵代碼,如圖9所示。
圖9 拍照實現(xiàn)關鍵代碼
加載在線地圖實現(xiàn)的關鍵代碼,如圖10所示。
圖10 加載地圖關鍵代碼
本研究設計并實現(xiàn)了草海濕地植物資源數(shù)據(jù)采集系統(tǒng),并展示了移動GIS技術在生態(tài)環(huán)境研究和資源管理中的潛力和優(yōu)勢,概況為以下幾點。
1)設計和實現(xiàn)了基于ArcGIS for Android的草海濕地植物資源數(shù)據(jù)采集系統(tǒng)。
2)采用移動GIS技術實現(xiàn)了對草海濕地植物資源的實時采集、處理和管理。
3)在數(shù)據(jù)采集時采用了樣點、樣方和樣線方法,并提供了拍照的采集功能。
4)在數(shù)據(jù)庫設計中采用了SQLite存儲植物資源的各種字典屬性數(shù)據(jù),簡化了傳統(tǒng)的手動記錄操作流程,提高了工作效率。
5)展示了移動GIS技術在生態(tài)環(huán)境研究和資源管理中的應用前景,具有一定的示范和推廣意義。隨著移動終端設備的普及和技術的不斷發(fā)展,未來移動GIS技術在該領域的應用前景將更加廣闊。