前言:本站为你精心整理了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时代的到来,使用手机为农业服务必将是未来的发展趋势。