黎 曦,黃海虹,張新耐
(1.江西環(huán)境工程職業(yè)學(xué)院,江西 贛州 341000;2.中國(guó)礦業(yè)大學(xué),江蘇 徐州 221008)
林業(yè)調(diào)查信息采集處理平臺(tái)技術(shù)研究
黎 曦1,黃海虹1,張新耐2
(1.江西環(huán)境工程職業(yè)學(xué)院,江西 贛州 341000;2.中國(guó)礦業(yè)大學(xué),江蘇 徐州 221008)
在林業(yè)生產(chǎn)作業(yè)中,及時(shí)獲取可靠的林業(yè)資源信息、了解林業(yè)資源狀況和變化信息十分重要。傳統(tǒng)的林業(yè)調(diào)查是一項(xiàng)十分艱苦的工作,定位、各項(xiàng)森林調(diào)查因子的外業(yè)采集、記錄及內(nèi)業(yè)數(shù)據(jù)處理工作任務(wù)繁重,文中對(duì)森林資源外業(yè)數(shù)據(jù)采集、實(shí)地影像存貯、記錄、數(shù)據(jù)處理提出了在移動(dòng)平臺(tái)PDA中的一套與GIS、GPS結(jié)合的解決方案,并詳細(xì)闡述了其系統(tǒng)開(kāi)發(fā)與功能實(shí)現(xiàn)的過(guò)程與步驟。系統(tǒng)具有數(shù)據(jù)不丟失,操作簡(jiǎn)便,自動(dòng)分類信息,統(tǒng)計(jì)等特點(diǎn)。
林業(yè)調(diào)查;信息采集;數(shù)據(jù)處理;系統(tǒng)開(kāi)發(fā);切片數(shù)據(jù)制作;底圖數(shù)據(jù)加載
2017年3月,中共中央政治局常委、國(guó)務(wù)院總理李克強(qiáng)作出重要批示。批示指出:國(guó)土綠化是生態(tài)文明建設(shè)的重要內(nèi)容,是實(shí)現(xiàn)可持續(xù)發(fā)展的重要基石。為鞏固和掌握造林綠化成果,綠化工程信息工作就要在業(yè)務(wù)上達(dá)到系統(tǒng)性、規(guī)范性、先進(jìn)性、科學(xué)性與實(shí)用性的統(tǒng)一,對(duì)森林進(jìn)行數(shù)量和質(zhì)量的精確評(píng)價(jià),能夠給相關(guān)部門提供多種信息源和決策依據(jù),為將來(lái)實(shí)現(xiàn)精準(zhǔn)林業(yè)做好前期探索。本研究對(duì)綠化工程中樹(shù)種、胸徑、樹(shù)高、面積及實(shí)地影像等信息與GIS結(jié)合的PDA為硬件強(qiáng)大的數(shù)據(jù)采集、處理和存貯功能,設(shè)計(jì)并實(shí)現(xiàn)林業(yè)調(diào)查野外數(shù)據(jù)采集處理系統(tǒng)。
SQLite是一款基于文本的輕型關(guān)系型數(shù)據(jù)庫(kù),占用資源非常低,但是存儲(chǔ)容量足夠大,支持?jǐn)?shù)據(jù)庫(kù)大小達(dá)到2T,處理速度快,支持跨平臺(tái),輸入存儲(chǔ)讀入簡(jiǎn)單,能夠使用C、 PHP、Java、C#、Python等很多語(yǔ)言,支持的SQL語(yǔ)句不遜色于其他開(kāi)源數(shù)據(jù)庫(kù),最重要的是Android手機(jī)中內(nèi)置的SQLite數(shù)據(jù)庫(kù)為開(kāi)發(fā)提供了很大便利。SQLite引擎不是個(gè)別程序與之通信的獨(dú)立進(jìn)程,而是與程序連接,是程序的重要組成部分。SQLite的數(shù)據(jù)在編程語(yǔ)言內(nèi)直接用對(duì)應(yīng)接口調(diào)用,這在消耗總量、延遲時(shí)間和整體簡(jiǎn)單性上有積極的作用。系統(tǒng)SQLite數(shù)據(jù)庫(kù)一般在程序被第一次創(chuàng)建的時(shí)候生成。整個(gè)數(shù)據(jù)庫(kù)包括數(shù)據(jù)庫(kù)的定義、表結(jié)構(gòu)、索引信息、存儲(chǔ)數(shù)據(jù)都在宿主主機(jī)上,存儲(chǔ)在某個(gè)單一的文件中。
外業(yè)調(diào)繪數(shù)據(jù)依據(jù)根本性質(zhì)可分為2類,一類為影像及其相關(guān)信息,另外一類為幾何體及其相關(guān)信息,系統(tǒng)針對(duì)這2類數(shù)據(jù)進(jìn)行了數(shù)據(jù)表結(jié)構(gòu)的設(shè)計(jì),具體表結(jié)構(gòu)見(jiàn)表1和表2。
表1 小斑區(qū)域存儲(chǔ)結(jié)構(gòu)
系統(tǒng)開(kāi)發(fā)應(yīng)用以安裝了Android SDK、ADT等插件的 Eclipse為開(kāi)發(fā)平臺(tái),以ArcGIS Runtime SDK for Android 10.2為二次開(kāi)發(fā)工具,集成一系列所需的功能模塊,具體開(kāi)發(fā)環(huán)境介紹如表3所示。
表2 樹(shù)木點(diǎn)存儲(chǔ)結(jié)構(gòu)
表3 開(kāi)發(fā)環(huán)境介紹
首先利用LinearLayout對(duì)整個(gè)屏幕進(jìn)行分割,TobHost將所有控件按功能模塊劃分,F(xiàn)ragment按照不同的操作模式或顯示結(jié)果,或顯示控制按鈕,整體層次分明,運(yùn)用規(guī)范的圖片Button搭建起最終整體的界面框架。
2.2.1 布局容器介紹
布局容器介紹如表4所示。
表4 布局容器介紹
2.2.2 主界面與功能界面
主界面:LinearLayout進(jìn)行整體布局分割,TabHost將所有功能按照所屬功能模塊劃分,F(xiàn)ragment作為動(dòng)態(tài)顯示窗口,為不同功能模塊提供輔助信息。
赫魯曉夫外交政策的獨(dú)特特征是開(kāi)始重視亞非新興國(guó)家,改變之前對(duì)中立主義的否認(rèn)態(tài)度,承認(rèn)不結(jié)盟的意義與合理性。[55]蘇聯(lián)對(duì)緬甸中立外交政策給以很高評(píng)價(jià),特別是緬甸拒絕參加美國(guó)組織的東南亞條約組織。[56]斯大林時(shí)代的結(jié)束、蘇聯(lián)外交政策調(diào)整帶來(lái)的連鎖效應(yīng),很快在中蘇兩國(guó)與緬甸的關(guān)系上先后體現(xiàn)出來(lái),同時(shí)這些調(diào)整和變化在緬甸國(guó)內(nèi)也得到積極的響應(yīng)。
系統(tǒng)以ArcGIS中制作的切片數(shù)據(jù)為數(shù)據(jù)源。ArcGIS中切片數(shù)據(jù)有2種文件格式:松散型存儲(chǔ)(Exploded)、緊湊型存儲(chǔ)(Compact),本系統(tǒng)采用緊湊型存儲(chǔ)格式的切片數(shù)據(jù)為數(shù)據(jù)源,這種數(shù)據(jù)遷移方便、創(chuàng)建更快、存儲(chǔ)空間更少。緊湊型存儲(chǔ)最主要的2種文件是bundle和bundlx文件,其中bundle文件用于存儲(chǔ)切片數(shù)據(jù),bundlx是bundle文件中切片數(shù)據(jù)的索引文件。一個(gè)bundle文件中最多可以存儲(chǔ)128×128(16 384)個(gè)切片,但是創(chuàng)建的切片緩存并不是一張張切片單獨(dú)生成,而是以4 096像素(無(wú)抗鋸齒)或2 048像素(有抗鋸齒)為邊長(zhǎng)渲染的,如果選擇的切片邊長(zhǎng)為256像素并開(kāi)啟了抗鋸齒,那么每次ArcSOC進(jìn)程創(chuàng)建的是一張以8×8(64)個(gè)切片拼接成的大圖,然后切割后存入bundle文件中。該類切片數(shù)據(jù)加載速度快,包含基本的地理坐標(biāo)以及投影信息,是良好的底圖數(shù)據(jù)源。在ArcGIS中可以完成整個(gè)切片數(shù)據(jù)的制作。
首先把要制作切片的mxd數(shù)據(jù)改成相對(duì)路徑:打開(kāi)ArcMap->Customize->ArcMap Options->勾選Make relative paths default for new map documents。其次,點(diǎn)擊File->Map Document Properties->選中Store relative pathnames to data sources,填寫Map的描述,名字要和mxd的名稱一樣。接著,打開(kāi)ArcMap,加載數(shù)據(jù),選擇菜單Customize->ArcMap Options,在彈出的對(duì)話框中選擇“sharing”選項(xiàng)卡,勾選“Enable ArcGIS Runtime Tools”。 最后,在File文件菜單中的“share as…”菜單下就多了一個(gè)選項(xiàng)“Tile Package…”,選擇該菜單,彈出“Tile Package”對(duì)話框,設(shè)置各個(gè)標(biāo)簽頁(yè)中的參數(shù),基本都和發(fā)布ArcGIS for Server地圖服務(wù)時(shí)的參數(shù)相同,填寫完成后點(diǎn)擊“Analyze”,如果報(bào)錯(cuò)則根據(jù)錯(cuò)誤提示重新修改各個(gè)參數(shù),最后點(diǎn)擊Share,開(kāi)始制作切片數(shù)據(jù)。相關(guān)操作步驟如圖1至圖7所示。
1)底圖:運(yùn)用MapView的addLayer方法加載LocalTitleLayer(離線切片數(shù)據(jù)),MapView能自動(dòng)讀取地圖各類數(shù)據(jù)并將本地切片數(shù)據(jù)加載到地圖窗口。
2)樹(shù)木點(diǎn)、小斑區(qū)域、GPS點(diǎn)顯示圖層:將SQLite數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)讀出,存儲(chǔ)到單獨(dú)的GraphicsLayer 運(yùn)用MapView的addLayer方法加載顯示。
1)圖層控制:在圖層控制Fragment中通過(guò)getActivity獲取父界面控件,再通過(guò)findViewById方法獲取MapView控件,由MapView的getLayer方法得到對(duì)應(yīng)的切片數(shù)據(jù)圖層與Graphiclayer圖層,通過(guò)圖層的setVisible方法即可實(shí)現(xiàn)圖層能見(jiàn)控制功能。
圖1 切片源數(shù)據(jù)Fig.1 Slicing source data
圖2 勾選選項(xiàng)Fig.2 Checking the option
2)GPS定位:通過(guò)getSystemService方法可以得到LocationManager,通過(guò)LocationManager的requestLocationUpdates方法可以設(shè)相應(yīng)位置變化監(jiān)聽(tīng)的最短時(shí)間間隔和最小距離間隔。在onLocationChanged函數(shù)中可獲得當(dāng)前位置的GPS經(jīng)緯度信息。
①位置:由當(dāng)前定位點(diǎn)坐標(biāo)生成Point,由MapView的centerAt方法,地圖移動(dòng)到定位點(diǎn)。
圖3 添加MXD描述 Fig.3 Adding MXD description
3)切換底圖:打開(kāi)存放底圖切片的文件夾,遍歷文件夾內(nèi)切片數(shù)據(jù),由底圖名稱生成RadioButton,添加到RadioGroup中完成底圖數(shù)據(jù)的顯示,選中要加載數(shù)據(jù)后由RadioButton對(duì)應(yīng)的文件名和所在路徑生成LocalTitleLayer加載到MapView,重新加載刷新主窗體,完成底圖的切換。
1)繪制:長(zhǎng)按屏幕,有MapView的setShowMagnifierOnLongPress方法顯示長(zhǎng)按區(qū)域的放大效果圖,移動(dòng)選擇要繪制點(diǎn)位置,得到點(diǎn)擊點(diǎn)的屏幕坐標(biāo),由MapView的toMapPoint方法,將屏幕坐標(biāo)轉(zhuǎn)換為地理坐標(biāo),將地理坐標(biāo)點(diǎn)生成SimpleMarkerSymbol后添加到GraphicLayer完成點(diǎn)的繪制與顯示,如果繼續(xù)繪制點(diǎn),將點(diǎn)連接成面完成小斑區(qū)域的繪制。
圖4 勾選Enable ArcGIS Runtime ToolsFig.4 Checking Enable ArcGIS Runtime Tools
圖5 制作切片底圖Fig.5 Making slicing base map
圖6 正在制作切片 Fig.6 Slice is making
圖7 切片制作完成Fig.7 Slice is complete
2)保存:判斷當(dāng)前繪制圖形的狀態(tài),如果只有幾個(gè)點(diǎn),保存為樹(shù)木點(diǎn),如果大于等于3個(gè)點(diǎn)繪制的為面,保存為小斑區(qū)域。雙擊屏幕或點(diǎn)擊保存按鈕,運(yùn)用startActivityforResult跳出屬性信息完善窗口,完善屬性信息后,首先通過(guò)SQLiteDatabase的getWritableDatabase獲得事前生成的可寫數(shù)據(jù)庫(kù),再通過(guò)自己編寫的GeometryToWKT方法將當(dāng)前定位點(diǎn)轉(zhuǎn)化為WKT字符串存儲(chǔ),完善對(duì)應(yīng)屬性信息,通過(guò)getWritableDatabase的insert方法將所有信息存入SQLite數(shù)據(jù)庫(kù),最后關(guān)閉可寫數(shù)據(jù)庫(kù)就完成數(shù)據(jù)的入庫(kù)操作。
3)撤銷:點(diǎn)擊撤銷按鈕刪除繪制的最后一個(gè)點(diǎn);點(diǎn)擊繪制圖形某一點(diǎn)則刪除該點(diǎn)。
4)點(diǎn)選:通過(guò)GraphicLayer的getGraphicIDs方法獲取當(dāng)前點(diǎn)擊位置所有在一定容差內(nèi)的Graphic對(duì)象,通過(guò)Geometry的getGeometry方法,得到選中對(duì)象的坐標(biāo),由坐標(biāo)作為查詢的關(guān)鍵字,得到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的對(duì)象。
5)編輯:通過(guò)編輯窗口將編輯好的集合體重新封裝為Graphic,最后通過(guò)graphicsLayer的updateGraphic方法實(shí)現(xiàn)顯示上的更新。通過(guò)SQLiteDatabase的getWritableDatabase獲得事前生成的可寫數(shù)據(jù)庫(kù),通過(guò)getWritableDatabase的update方法以點(diǎn)選過(guò)程中生成的_id為關(guān)鍵字,找到數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)條目,更新條目完成數(shù)據(jù)更新。
1)樹(shù)木點(diǎn)與小斑區(qū)域數(shù)據(jù)統(tǒng)計(jì)信息的顯示:自定義RefreshStatistics方法,方法中通過(guò)SQLiteDatabase的getReadableDatabase方法得到只讀數(shù)據(jù)庫(kù),通過(guò)只讀數(shù)據(jù)庫(kù)的query方法可獲取所有數(shù)據(jù)的Cursor對(duì)象,讀出其中所有的統(tǒng)計(jì)信息,經(jīng)過(guò)簡(jiǎn)單的統(tǒng)計(jì)計(jì)算,將統(tǒng)計(jì)結(jié)果加載到對(duì)應(yīng)Label完成數(shù)據(jù)的簡(jiǎn)單統(tǒng)計(jì)和顯示。每次完成數(shù)據(jù)的入庫(kù)或者刪除操作,調(diào)用RefreshStatistics方法,實(shí)現(xiàn)實(shí)時(shí)統(tǒng)計(jì)結(jié)果刷新顯示。
2)數(shù)據(jù)遍歷與刪除:針對(duì)不同的SQLite數(shù)據(jù)格式設(shè)置不同的ListFragment布局用于數(shù)據(jù)顯示,通過(guò)getReadableDatabase方法獲得只讀數(shù)據(jù)庫(kù),通過(guò)只讀數(shù)據(jù)庫(kù)的query方法獲取數(shù)據(jù)集合Cursor,利用SimpleCursorAdapter生成適配器,將適配器利用setListAdapter方法綁定到ListFragment即可實(shí)現(xiàn)數(shù)據(jù)顯示。長(zhǎng)按條目,可通過(guò)_id找到對(duì)應(yīng)的數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù),并選擇是否進(jìn)行刪除操作。
3)數(shù)據(jù)導(dǎo)出:使用jxl庫(kù),遍歷數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)后,將數(shù)據(jù)寫入Excel完成數(shù)據(jù)轉(zhuǎn)移。
1)所有數(shù)據(jù)均實(shí)時(shí)存儲(chǔ)到數(shù)據(jù)庫(kù),即使程序出現(xiàn)BUG數(shù)據(jù)不會(huì)丟失;
2)繪制保存標(biāo)記操作簡(jiǎn)便,將盡量多的操作從按鈕中解放到手勢(shì)操作;
3)自動(dòng)分類信息統(tǒng)計(jì),自動(dòng)讀取當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù),分類并進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。
[1] 高賢強(qiáng),姚江河.新疆南疆地區(qū)牧草病蟲(chóng)害資源庫(kù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖北農(nóng)業(yè)科學(xué),2015(10):2497-2499.
[2] 查東平,林輝,孫華,等.森林資源信息外業(yè)采集移動(dòng)平臺(tái)關(guān)鍵技術(shù)研究[J].中南林業(yè)科技大學(xué)學(xué)報(bào),2012(9):32-36.
[3] 黎曦,湯麗瓊.手持低精度及高精度GPS在林業(yè)調(diào)查中的應(yīng)用研究[J].安徽農(nóng)業(yè)科學(xué),2012(23):11908-11910.
Platform and Technology of Forestry Survey Information Collection And Processing
LI Xi1, HUANG Haihong1, ZHANG Xinnai2
(1 Jiangxi Environmental Engineering Vocational College, Ganzhou, Jiangxi 341000, China; 2 China University of Mining and Technology, Xuzhou, Jiangsu221008, China)
It’s very important in forestry production to timely obtain reliable forest resources information, understand the condition of forestry resources and know about the dynamic information. The traditional forestry survey, including positioning, collection and recording the various forest investigation factors and data processing, is extremely difficult. This research puts forward a solution to apply GIS and GPS in the mobile platform PDA with the specific introduction about the process of the system development and implementation. The system has the characteristics of safe data storage, easy operation, automatic statistics and classification for information.
forestry Survey; information collection; data processing; system development; making slicing data; loading base map data
2017-05-10.
江西省2013年科技支撐計(jì)劃項(xiàng)目20132BBF60082:基于全站儀、GPS、GIS技術(shù)的造林綠化“一大四小”工程暨林業(yè)信息平臺(tái)建設(shè)研究.
黎 曦(1971-),男,江西贛州人,教授.主要從事測(cè)繪、森林調(diào)查的教學(xué)與科研工作.
10.3969/j.issn.1671-3168.2017.05.009
S7;TP391
A
1671-3168(2017)05-0046-06