前言:本站為你精心整理了J2ME技術在施肥中的運用范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
J2ME是SUN微系統公司推出的一種以廣泛的消費性產品為目標的高度優化的JAVA運行時環境,包括尋呼機、移動電話、可視電話、數字機頂盒和汽車導航系統等設備。從技術的角度講,J2ME在應用層提供了全功能的JAVA開發環境,適合在無線通訊設備上開發交互性較強的網絡應用。由于J2ME提供了對HTTP和TCP等高級Internet協議的支持,突破了WAP(WirelessApplicationProtoco,l無線應用協議)必須通過WAP網關才能訪問Internet以及僅能訪問基于WML(WAP標記語言)構建的網站的限制,使得移動通訊設備可以用Client/Server方式訪問Internet上的所有信息[1]。由于有限連接設備的硬件和網絡的限制,有限連接設備配置(ConnectedLmiitedDeviceConfiguration,CLDC)與移動信息設備簡表(MobileInformationDeviceProfile,MIDP)是目前支持J2ME手機平臺中使用最多的2個規范。CLDC提供了一個適合小型的、資源受限的、連接受限的設備上使用的標準JAVA平臺。而MIDP是建立在CLDC基礎上的一些公共的、開發移動設備的API的集合[2]。目前MIDP規范是2.0(MIDP2.0在JSR-118中制定),由于該系統需要提取用戶的坐標位置,因此需要使用J2ME的位置API,即JSR-179包。JSR-179包是一個用于基于CDC的設備和基于CLDC的設備的標準可選包。它允許J2ME應用程序通過標準的API訪問任何設備的位置信息,不管設備底層的技術如何,也不考慮服務提供商是誰。表1列出了在javax.microedi-tion.location包中定義的所有J2ME位置API,該表是根據該包1.0最終版(2003年9月)制作的。
2氮素平衡模型介紹
該研究的氮素平衡推薦模型主要借鑒了德國氮素專家系統(N-EXPERT)[3-4]和德國KNS系統(KulturbegleitendenNminSollwerte-System,即根據作物的生長考慮Nmin目標值的系統)[5-6]對氮肥限制性施用的模型理論,參考近幾年的相關研究[7-8],結合壽光市實際提出了適合該市的氮素平衡推薦系統。德國氮素專家系統研究的基礎是考慮蔬菜-土壤體系中氮素平衡過程的各組分和主要過程,如土壤氮素礦化、作物殘體氮素礦化、氮素損失、蔬菜氮素吸收規律等,通過平衡方法計算出氮肥的施用量,并可根據蔬菜氮素吸收的動態監測結果及時做出反饋調整。為了使開發的系統方便應用,易于推廣,必須簡化系統結構。在氮素平衡的計算中,對于影響蔬菜氮素吸收程度小的組分可以不予考慮,而對于影響較大的組分進行了有目的的選擇,其核心是要求施肥滿足作物生長所需的氮素目標值,并且采用簡單的平衡模型計算推薦氮素施用量公式:推薦量=組分1+組分2+組分3-組分4-組分5-組分6。系統中各組分受不同的因素制約和影響,其研究方法也有所區別。對于作物氮素吸收、氮素損失、土壤有機氮礦化,有機肥氮素礦化來說,影響它們的過程復雜,參數很多,其計算精度必須滿足對于氮肥施用推薦的要求。因此,系統選用模型來對這些過程進行預測。必需土壤Nmin緩沖值需要通過田間試驗或專家建議獲得,而播前土壤氮素存留的氮素量則可以在實驗室分析后得到。對于作物氮素吸收、氮素損失、土壤有機氮礦化、有機肥氮素礦化均可以采用相近似的數學模型模擬。
3系統設計與實現
系統總體設計包括系統數據庫設計,系統客戶端設計和系統服務端設計。
3.1系統數據庫設計該系統的服務端需要使用數據庫,這里選擇MSSQLSERVER2005。數據庫中存儲了該系統需要計算的相關數據信息,包括圖形數據和屬性數據。圖形數據用于描述經過地統計插值后的土壤氮素分布情況,其表達手段是坐標值。屬性數據是對圖形數據的必要補充,是為各個空間對象合理地賦予屬性信息,其表達手段是字符串或統計數值。
3.2系統功能結構設計用戶需要使用帶GPS定位設備的手機或PDA,以便系統自動提取用戶所在地的GPS坐標,然后用戶填寫關于氮肥推薦的信息,將該信息伴隨坐標通過無線網絡發送到GIS服務器,服務器通過坐標處理用戶請求,處理完畢將氮肥推薦的信息返回到用戶手機上。具體的手機端和服務端功能結構設計如下:該系統客戶端(手機端)主要包括6個窗體:mainForm(用于系統描述)、coordinateForm(用于獲取GPS坐標)、veg-Form(用于選擇蔬菜類型、產量類型和栽培季節)、vegForm2(用于輸入目標產量和生長周期)、fumureForm(用于選擇有機肥和輸入相應用量)和chemiForm(用于選擇化肥和計算最終結果值)。系統服務端設計包括使用ArcSDE將圖形數據存儲在SQLSERVER中,使用ArcGISSERVER后臺地圖服務等。
4關鍵技術分析
4.1使用J2ME的位置API獲取GPS經緯坐標通常,移動設備中內置的定位提供方法并不是必須的。比如,設備運行一個定位API,需要一個附件來運行定位方法。這樣一個附件可以是帶藍牙的GPS接收設備或者是一個在有效范圍內的GPS接收設備。位置的精確度由定位的方法所決定。有很多設備運行API定位程序從手機的基站獲得位置信息,局部小范圍的定位基站也可以用來獲取位置信息。除此之外,很多設備支持混合方法叫做A-GPS,這種方法同時使用了GPS和網絡獲取位置信息。一般地,使用衛星接收到的位置信息更加精確。但由于衛星的周期性,在商業區衛星的GPS可能出現“峽谷效應”,造成API定位中斷。使用的費用根據不同的定位方法決定。API中可以定義定位所使用的方法。
4.1.1選擇服務供應商。位置API使用的第一個類是Lo-cationProvider類,其顯示了定位信息提供的模式。通過使用默認的LocationProvider.getInstance(Criteriacriteria)可以創建LocationProvider的一個實例。標準參數用于判斷使用了什么定位方式。API運行的時候會選擇符合參數的定位提供方式。下面是其代碼實現框架:Criteriacrit1=newCriteria();LocationProviderprovider=LocationProvider.getInstance(criteria);if(provider!=null){……}
4.1.2創建接收端。當LocationProvider成功創建以后,就可以被用來注冊MIDLET監聽位置信息的更新以及坐標的變動,當前位置更新和定位方法狀態的改變的事件可以用LocationListener的借口來監聽,通過這樣一個接口,JSR179就可以對一個設備進行跟蹤。下面是其代碼實現框架:publicvoidlocationUpdated(LocationProviderprovider,finalLocationlocation){……}publicvoidproviderStateChanged(LocationProviderprovid-er,finalintnewState){……}
4.1.3注冊接收終端。使用setLocationProvider方法可以使LocationListener注冊一種定位方法,這樣就可以確定下面的參數:interval(以秒為單位),該參數用來接收事件;tmieout(以秒為單位),代表與定義的更新間隔相比較,最大的升級間隔時間。Maxage定義了位置信息更新的值。下面是其代碼實現框架:publicvoidsetLocationListener(LocationListenerlistener,intinterva,linttmieou,tintmaxAge){//AddsaLocationListenerforupdatesatthedefinedinter-va.l}
4.1.4訪問位置坐標。使用QualifiedCoordinates類的getter方法可以獲得以1西格瑪為誤差描述坐標數據的精度,包括經度(Longitude)、緯度(Latitude)和高程(Altitude)。
4.2坐標轉換問題該系統客戶端(手機端)獲取的用戶位置是WGS84坐標,而GIS服務器數據處理時用的是西安80坐標,因此需要進行坐標轉換。轉換思路:先將WGS84大地坐標轉換到WGS84空間坐標,再將WGS84空間坐標經過坐標變換(比如采用布爾莎模型)轉換為西安80空間坐標,然后將西安80空間坐標轉為西安80大地坐標,再將西安80大地坐標經過投影(比如選用高斯投影)轉換為西安80平面坐標,最后利用西安原點進行坐標平差。
4.3使用Servlet與J2ME進行通訊由于J2ME支持HTTP和TCP等高級Internet協議,所以該系統可以使用HT-TP協議與Servlet進行交互。
4.3.1客戶端HTTP編程。J2ME手機HTTP編程包括4部分:建立HTTP連接,設置HTTP請求頭,回復處理和關閉HTTP連接。下面是其代碼實現框架:HttpConnectionconn=nul;l//定義連接對象Stringtag="true";Stringurl="訪問servlet地址";//Servlet的URLurl=url+"?tag="+tag;conn=(HttpConnection)Connector.open(url);conn.setRequesMtethod(HttpConnection.GET);if(conn.getResponseCode()==HttpConnection.HTTP_OK){//處理返回信息……}if(conn!=null)conn.close();
4.3.2服務端SERVLET編程。Servlet是與JSP一樣在服務端運行的一種Java應用程序,Servlet可以接受來自瀏覽器或J2ME程序的HTTP請求,并作出響應。在Servlet中通常使用抽象類HttpServlet類。HttpServlet類是GenericServlet類的擴充,提供了一個處理HTTP協議的框架。HttpServlet類包含初始程序方法init()、銷毀程序方法destroy()以及功能服務service()等方法。其中init()與destroy()方法必須被繼承。service()是Servlet的核心,提供了處理業務邏輯的方法,比如提供了doGet和doPost方法來支持標準的HTTP請求方法如GET和POST等。由于J2ME自身函數的限制不支持科學計算,所以將科學計算(坐標轉換)放在Servlet中處理,此外,Servlet還包括與GIS服務器進行交互以及處理J2ME發出的事務請求操作。
4.4使用ArcGISServer建立后臺地圖服務ArcGISServ-er是功能強大的基于服務器的GIS產品,用于構建集中管理的,支持多用戶的,具備高級GIS功能的企業級GIS應用與服務,如空間數據管理、二維三維地圖可視化、數據編輯、空間分析等即拿即用的應用和類型豐富的服務。ArcGISServer提供廣泛的基于Web的GIS服務,以支持在分布式環境下實現地理數據管理、制圖、地理處理、空間分析、編輯和其他的GIS功能。該系統使用ArcGISSERVER創建后臺地圖服務以處理SERVLET發送的計算參數請求操作。
5應用實例
該系統的研究實現了J2ME技術在農業氮肥平衡推薦中的應用,拓寬了智能手機的應用范圍,使得智能手機能夠為農業這塊很具備數據和應用雙重挖掘潛力的領域服務。圖4是在Nokia6220C手機上的截圖。6結語該研究介紹了J2ME技術在農業氮肥平衡推薦中的應用研究,這其中涉及到了氮肥平衡模型的選用,使用JSR-179獲取坐標位置,應用坐標轉換模型進行坐標轉換,使用Serv-let與J2ME通訊,以及利用ArcGISSERVER地圖服務等內容。筆者的目的只是向人們推薦一條使用J2ME技術在農業氮肥平衡推薦中的應用思路,并且隨著智能手機的普及以及手機3G時代的到來,使用手機為農業服務必將是未來的發展趨勢。