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