鐘澤宇 肖舒裴


摘要:精細化農業是世界農業現代化的發展方向。為推進我國精細化農業的發展,本文針對我國精細化農業的現狀,設計開發了基于Google Earth的農田信息監測系統。該系統利用獲得的經緯度信息,并引入Google Earth組件,二次開發可視化電子地圖;構建監測數據查詢分析模塊,從而實時監測土壤墑情及農田溫濕度的空間分布,實現對農田信息的監測與管理。
關鍵詞:Google Earth KML 數據庫 農田監測
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2016)07-0146-01
1 引言
精細化農業是農業現代化的發展方向,準確、及時與可靠地獲取農田氣候、土壤特性等信息是實現精細化農業的基礎[1]。傳統農田信息監測方法中,工作人員孤立地利用各種測量儀表在現場逐項進行數據采集。采集的農田屬性和地理環境信息記錄在專用文本上,信息的采集量受儀表存儲器容量的限制。本文針對我國傳統農田信息監測方法存儲農田信息數據量小及后期分析困難的缺點,設計開發了基于Google Earth的農田信息監測系統。該系統引入Google Earth組件,二次開發可視化電子地圖,實時監測土壤墑情及農田溫濕度的空間分布,實現對農田信息的監測與管理。
2 基于Google Earth的地理位置信息顯示
2.1 Google Earth簡介
Google Earth是在地理信息系統的基礎上發展而來的龐大的地理信息數據庫。它將衛星圖像、航空測繪圖像和地理信息系統布置在一個地球的三維模型上,能夠實時地為用戶提供所觀察區域的多角度高清晰的衛星圖像、地貌地形、街景視圖等[2]。Google Earth的電子地圖蘊含著豐富的地理數據信息,可以實現實時呈現經緯度、海拔高度等信息,并且開放了二次開發接口[3]。隨著Google Earth COM API的發布,Google Earth在越來越多的領域得到了廣泛的應用。
2.2 KML簡介
KML是Keyhole Markup Language的簡稱,是一種基于XML(可擴展標記語言)的在Google Earth中用于交換地理數據的文件,具體可用來描述和保存地理數據、為指定地點作圖表和注記以及為每一個地理特征創建不同的視角等。作為一種多功能的地理數據文件格式,KML可用于定義的地理特征包括地點、描述、疊層、路徑和多邊形等,并可將圖片、模型等各種農田信息在Google Earth客戶端中完整的呈現。
2.3 基于Google Earth COM API的開發
Google Earth COM API是目前針對Google Earth的一種開放方式。基于COM API的開發方式主要針對Google Earth的視角和動態效果,是可以獨立加載的二進制程序。本文所開發的農田信息監測系統利用第三方可視化編程工具Visual Studio 2013,調用COM API函數及用戶自定義的方法,架構應用程序。COM技術其對象本身不對外開放,只設置若干個對外開放的接口以供外部程序調用。
2.4 Google Earth的啟動、窗口嵌入及關閉
2.4.1 Google Earth客戶端的啟動
IApplicationGE是進入到Google Earth最主要的類,外部應用程序對Google Earth的操作,大部分都需要直接或間接地通過該類來實現,是基于Google Earth COM API進行程序開發的基礎。
Google Earth com API 中主要類的用途有:其成員函數GetCamera ()返回Google Earth的當前視角;SetCamra()以參數指定的速度飛到指定的視角。OpenKmlFile()和LoadKmlData()分別是加載一個KML文件和相應KML數據流的函數;GetFeatureBy-Name()則用來獲取參數指定Name的特征值。
2.4.2 Google Earth客戶端的窗口嵌入
Google Earth作為一個獨立的軟件運行,需要將其嵌入農田信息檢測系統使其作為整體運行,實現農田的地理位置關聯與顯示。可利用IApplicationGE類中提供的函數GetMainHwnd()和GetRenderHwnd()獲取Google Earth客戶端主窗口以及地圖窗口句柄,在MFC中對這兩個窗口句柄進行相應操作即可完成Google Earth地圖窗口在農田信息檢測系統中的嵌入。實現Google Earth窗口嵌入的流程圖如圖1所示。
2.4.3 Google Earth客戶端的關閉
由于Google Earth客戶端獨立于農田信息檢測系統運行,用戶在關閉農田信息檢測系統窗口后并沒有關閉Google Earth客戶端。因此需要在Visual Studio中編寫相應代碼使其完全關閉。可在農田信息檢測系統運行窗口關閉時,向Google Earth組件發送關閉命令,并釋放資源,以達到完全關閉的目的。
3 基于SQL Server數據庫的農田信息存儲與處理
3.1 數據庫簡介
數據庫作為存儲與管理數據的平臺,具體可以實現以下幾點功能:(1)結構化存儲數據;(2)實現數據共享;(3)減少數據的冗余度;(4)保護數據完整性;(5)數據集中控制;(6)并發控制。
3.2 基于SQL Server數據庫的農田信息存儲與處理
要實現訪問操作,首先要建立農田信息檢測系統平臺與數據庫之間的連接,具體操作如下:
(1)配置數據源。本系統在程序中根據用戶選擇動態配置數據源而不調用ODBC數據源管理器以簡化開發過程。配置SQL Server數據源時,必須具備SQL Server服務器名和服務器中的目標數據庫名。可通過ODBC API中的SQLBrowseConnect()函數得到本地所有的SQL Server服務器、庫、語言信息等。
(2)與數據源建立連接。ODBC API中的SQLConnect()函數用于對給定參數直接建立與數據源的連接;SQLDriverConnect()函數用于給定部分連接參數時與數據源的連接,并彈出數據源瀏覽窗口與用戶交互,獲得足夠的參數后建立與數據源的連接的情況;而SQLBrowseConnect()函數是通過迭代獲取連結參數后再進行連接[6]。
(3)對數據庫進行存取和查詢操作。與數據源建立連接后,用戶即可在農田信息檢測系統界面調用數據庫中的經度、緯度、溫濕度等數據并對其進行更新操作。
4 Google Earth在農田信息管理系統中的運行結果
將程序編譯及運行,測試上述功能的運行情況。該系統可實現監測指定經緯度農田土壤水分、環境溫濕度的空間分布的功能。運行結果如圖2所示:
5 結語
本系統利用Google Earth二次開發技術并結合KML語言,通過Visual C++將其應用于農田信息監測之中,為精細化農業實時監測土壤墑情及農田溫濕度的空間分布提供了一種解決方案。
參考文獻
[1]劉龍申,沈明霞,孫玉文,陸明洲,熊迎軍.基于FPGA的農田圖像采集與GPRS無線傳輸系統設計[J].農業機械學報,2011,42(12):186-190.
[2]Google,Inc.Google Earth COM API Documentation.2009.
[3]李就好,羅錫文,趙新.基于GPS和GIS的旱情監測系統與應用[J].農機化研究,2004,(6):218-220.