樂通潮
(1.福建省林業科學研究院,福建 福州 350012;2.泉州灣濕地生態系統定位研究站,福建 泉州 362000)
現代林業是當前生態文明建設中最基礎的環節之一,而林業數字化建設是落實現代林業發展的重要途徑。外業調查數據采集是林業信息化的重要內容,通常情況,林業工作者在森林資源清查及林地變更調查等外業調查時需要隨身攜帶地形圖、林業基本圖等紙質圖件,對現場判讀地圖和辨認地形能力有很高的要求,調查人員要有豐富的野外工作經驗。同時,外業調查數據要記錄在紙質表格內,需要內業整理,無法實現內外業一體化處理。智能移動終端、地理定位、無線互聯網等技術的發展勢必助推移動地理信息系統在各行各業的深入應用,便攜式智能移動終端應用于森林資源調查、森林管護及科研試驗地等信息管理成為現實。本文簡述移動地理信息系統具有衛星定位、智能終端攜帶方便及無線互聯網絡等特點,開發林業外業調查數據采集系統,為林業資源信息數字化采集提供解決方案,將傳統的煩瑣復雜的外業調查和內業整理工作變得快捷、高效、簡便。
移動定位技術包括衛星定位、網絡定位及混合定位。目前市面上智能手機、IPAD等移動終端大多采用混合定位,但在沒有網絡信號覆蓋的野外主要采用基于衛星定位系統(GPS、GLONASS、Galileo、QZSS、北斗)。衛星定位系統包括:衛星星座、地面監控系統和衛星信號接收機。在移動地理信息系統中,衛星定位功能被分裝在一個Location Manager對象中,通過調用相關函數獲得地理位置信息,從而實現與位置有關的地理信息服務。
地圖瓦片技術是一種分層級存儲高分辨率影像技術,按金字塔設計每層級的地理范圍保持一致,從頂層到底層,分辨率越來越高。谷歌地球、天地圖、百度地圖等地圖服務商通常運用瓦片地圖技術采用相應的切片算法向用戶提供在線地圖服務。傳統的瓦片地圖不能脫離網絡瀏覽,而基于ArcGIS的緊湊型瓦片地圖能夠脫離網絡支持多種移動設備讀取本地地圖數據,是目前應用較廣泛的地圖離線緩存技術。這種技術便于數據遷移,可為用戶靈活定制底圖數據,為移動端地理信息系統應用設備提供更好的數據采集和地圖導航定位服務。
隨著無線互聯網技術的迅猛發展和智能移動終端設備更新換代,移動地理信息從靜態走向動態,已成為現代信息科學的熱點技術。它具有移動性和實時性的特點,依托移動網絡,采用嵌入式技術將地理信息技術應用于平板、智能手機、穿戴裝備等移動終端,結合GPS、北斗或信號基站的精確定位技術,實時準確地向用戶提供存儲、獲得、顯示、處理、分析和更新地理信息服務。
移動離線數據庫是一種基于輕量型的移動環境分布式數據庫。SQLite誕生于2000年5月,是一個開源的嵌入式關系數據庫,占用資源小,操作速度快,能夠達到自包容、零配置、支持事務的關系數據庫引擎。SQLite數據表存儲管理幾何屬性信息,支持移動端在多種網絡條件下對地理數據的展示、查詢、編輯和保存等常規操作和事務處理。
二維碼技術是一種成本低廉、經濟實用、自糾錯的信息編碼和識別技術,已普及各行各業,極大地改變社會的生產生活方式。系統采用市面上廣泛應用的代表性的全方位識讀能力的矩陣式二維碼QR Code作為外業調查植物標簽信息載體。標簽RQ二維碼通過三個步驟生成:QR碼數據碼字生成、糾錯碼字的生成和最終碼字序列構造。外業調查時可將事先打印帶有關鍵字的二維碼,裝進透明自封袋固定到調查的樣木表面上,調查時通過移動終端掃描二維碼讀取樣木前期調查數據,輸入當次調查數據,存儲到數據庫。
基于移動終端的外業數據采集系統需要解決的重點問題是數據安全。一旦移動終端遺失或者被黑客侵入,設備上地形圖、森林資源、科研調查等數據容易為他人獲知,甚至導致涉密信息泄露,因此,數據加密技術是防止非授權用戶讀取數據的有效措施。采用md5加密算法將地圖數據加密,只有輸入正確的密碼才能打開圖層,用戶即使丟失移動終端也無須擔心數據泄密。
2.1.1 地理定位導航 當前主流導航衛星包括GPS、GLONASS、Galileo、QZSS、北斗等,不同的移動終端兼容不同的導航衛星信號。通過調用移動終端的地理定位模塊,實時接收導航衛星反饋的移動終端持有者當前的地理位置信息,標記于在線的或者預裝本機離線的衛星影像圖、地形圖或者其他專題矢量圖上,方便采集者在外業調查確定當前位置??蛇x定樣地位置、樣木位置、地名等作為目標點,實現以當前位置作為起點的實時軌跡導航。
2.1.2 地圖圖層管理 在線或預裝離線遙感影像及矢量地圖的裝載移除、地圖圖層的放大縮小漫游、圖層疊加、圖層標注顯示、圖層透明度調節等。
2.1.3 矢量數據編輯 讀寫矢量圖層、采集點線面、合并圖斑、切割圖形對象、修整圖形對象邊界、刪除圖形對象,添加、修改、更新要素的屬性等操作。
2.1.4 信息查詢 點擊屏幕查看所在位置對象的屬性、通過掃描二維碼查詢目標的屬性、坐標定位、地名搜索、關鍵字查詢等信息查詢。
2.1.5 拍照 設計為要素拍照、軌跡打點拍照和直接拍照,這三種方式都是對目標物拍照,所拍照片含有采集者當前地理坐標,可添加文字描述信息存儲于對應的屬性表。
2.1.6 數據導出 將采集要素導出通用格式供其他程序調用,如shapefile文件、txt文件等。
2.1.7 系統設置 對采集方式、定位采集的閾值、軌跡取點間隔、長度面積單位、坐標系統、照片命名規則等參數設定。
系統的矢量數據采用SQLite數據庫要素類和shapefile文件,分別對樣地、樣木及現狀地類等調查表結構進行設計(如表1、表2、表3)。

表1 樣地字段信息表

表2 樣木字段信息表

表3 地類現狀調查信息表
以Android Studio為開發平臺,使用Java作為開發語言,結合UCMAP進行開發。
3.2.1 加載離線地圖 UCMAP地圖是一個文件夾,加載shapefile數據需要先調用addFeatureLayer添加要素圖層,再調用loadShapefile,輸入相應的樣式,就完成shapefile數據的裝載。
String dir=Environment.getExternalStorageDirectory().getPath();
UCFeatureLayer layer=mView.addFeatureLayer(this);
Layer.loadShapefile(dir+”/forestryShp/小班_region.shp”,30,0,”#00000000”,”#FFB9CAFF”)。
加載mbtiles影像數據需要調用addMbtilesLayer完成數據加載。
String dir=Environment.getExternalStorageDirectory().getPath();
mView.addMbtilesLayer(dir+”/mbtiles/test.mbtiles”,0,18)。
加載TIFF格式的影像數據,需要先調用UCMAPView的importRaster函數,將tiff影像導入,然后調用UCMAPView的addRasterLayer2函數將它添加進地圖。
3.2.2 地理定位 先添加Location圖層,然后在onLocationChanged函數中調用setLocationPosition來設置位置符號的位置,再調用refresh立即刷新顯示。
mView.setLocationPosition(location.getLongitude(),location.getLatitude(),location.getAccuracy());mView.refresh()。
3.2.3 要素編輯 矢量地圖的編輯功能,主要包括:添加要素、刪除要素、修改圖形、修改屬性、開關捕捉、整體移動等。
添加一個點要素:
Pt=Gf.createPoint(new Coordinate(119.787767,26.042366));
Values.put(“geometry”,pt);
Layer.addFeature(values)。
刪除要素調用deleteFeature
修改圖形:
mapView.getMapControl().setCurrentTool(new EditFeatureTool(mapView.getMapControl()))
修改屬性:
EditFeatureAttTool tool=new EditFeatureAttTool(mapView.getMapControl());
editTool=tool;
editTool.setListener(act);
mapView.getMapControl().setCurrentTool(tool);
public void onUpdateFeature(IFeatureft,ILayer layer) {
this.ft=ft;
IFeatureLayer flayer={IFeatureLayer} layer;
This.showModifyDialog(flayer.getFeatureClass().getFields(),ft.getValues());}
開關捕捉用 ((AddFeatureTool)editTool).openSnap()和((AddFeatureTool)editTool).closeSnap()
整體移動:
EditFeatureTool tool=new EditFeatureTool(mapView.getMapControl());
Tool.setType(EditFeatureTool.Type_Move);
mapView.getMapControl().setCurrentTool(tool)。
3.2.4 拍照 開啟移動終端的拍攝設備,再將地理坐標信息寫入文字標簽。
Intent intent=new Intent(“android.media.action.IMAGE_CAPTURE”)。
接著,調用setLocationPosition和addTextItem函數實現獲取經緯度及添加文字。
3.2.5 二維碼查詢 采用嵌入ZXing二維碼模塊,將樣地、樣木等對象的關鍵字生成二維碼打印出來粘貼到調查對象,通過移動終端掃描二維碼讀取屬性信息,對變化信息進行更新到空間數據庫。
3.2.6 數據導出 要素圖層以shapefile格式導出:
Layers.elementAt(which).outputToShapefile(“/sdcard/”)。
本文對移動地理信息系統在現代林業領域國內外的應用現狀進行了簡述,闡述了移動地理信息系統開發所需關鍵技術,基于Android和UCMAP平臺對林業外業調查數據采集系統的功能和數據庫表結構進行設計,并分析說明了部分功能的實現關鍵代碼。本系統在移動終端上實現電腦版地理信息系統軟件的主要功能,具備在線或離線讀取天地圖、谷歌衛星影像、地形圖、矢量數據等,采集、編輯點線面數據、定位導航、拍照、二維碼查詢、首字母快速檢索等功能,操作簡單便捷,無紙化調查,實時實地定位,可優化外業調查路線,調查對象的屬性表關聯拍照功能,外業調查時隨手拍照便于內業核查完善調查因子,能夠大大減輕內業整理工作量,提高工作效率和調查結果的準確性,同時本系統利用MD5加密技術對需要保密的圖層數據進行加密處理,可以降低涉密資料泄露的可能性。當然,目前市面智能手機、手持式GPS、IPAD等移動終端地理定位精度在米級,對于測量精度要求在厘米級的測繪調查任務中,仍然需要RTK等測繪儀器設備。隨著移動終端硬件的升級,軟件進一步優化,當前應用中存在的一些問題將會迎刃而解。