李举文
摘要:在某些情况下,对一些特殊人群的位置,我们需要实施监测,了解他们的动向,现代智能设备的普及使得这项功能的应用摆脱了专业设备的束缚和掣肘,提供了低成本高效率的实施平台。文中以使用Basic4ppc开发平台,结合网络功能对Windows Mobile系统的智能设备实现这项功能以及类似功能的扩展。
关键词:Windows Mobile设备;Basic4ppc开发平台;位置监测;GPS;电子地图API
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)05-1049-03
1概述
时代的进步,使各式各样的智能设备在大众中普及,其中,用于智能手机和掌上电脑的微软的Windows Mobile系统是比较有影响的一种智能设备操作系统。在这个平台上可以开发出各种功能复杂的智能设备应用程序,扩展智能设备的功能。BASIC4PPC是开发智能设备应用程序的高效平台和程序设计语言,使用它可以方便高效的实现复杂的应用方案。
2项目用到技术概念2 .1 BASIC4PPC简介
Basic4ppc是一种用于Windows Mobile移动设备开发应用程序的编程工具,系统本身提供了大量的可视化控件,可以很方便的使用可视化方式直接绘制用户的图形界面,系统使用面向对象的编程思路,事件驱动的编程机制,提供了大量的运行库文件,能简单的实现复杂的功能,例如,控制系统的各种的传感器,gps设备,网络应用等。
2.2 GPS
GPS,Global Positioning System,全球定位系统的简称,利用卫星,在全球范围内实时进行定位、导航的系统。GPS功能必须具备GPS终端、传输网络和监控平台三个要素;这三个要素缺一不可;通过这三个要素,可以提供车辆辅助决策,追踪,防盗、反劫、行驶路线监控及呼叫指挥等功能。2.3异步JavaScript和XML
异步JavaScript和XML,即Ajax,是一种是指一种创建交互式网页应用的网页开发技术。Ajax的核心是JavaScript对象Xml? HttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用Ja? vaScript向服务器提出请求并处理响应,而不阻塞用户。
3基于网络的GPS应用
3.1项目目标
本项目实践通过移动设备的网络功能和GPS定位功能,实时把gps定位数据发送到网络中的伺服器,通过伺服器对数据进行计算,处理,存储,备查。伺服器能根据查询指令通过集成百度地图的API,以地图方式显示GPS数据,清楚指示出移动设备的当前位置和历史位置。此项目标的实现将带来富有意义的应用,例如寻找丢失的移动设备,寻找带有移动设备的走失儿童等。
3.2项目框架
GPS和卫星的通信由智能设备的物理层实现,GPS使用NMEA-0183协议和智能设备通信,NMEA-0183协议是GPS接收机遵守的标准协议,此协议在不同的GPS导航设备中建立了统一的RTCM标准。NAEA 0183语句以ASCII格式输出。智能设备上的应用程序使用NAEA 0183协议从GPS上获取定位数据,并使用网络连接服务提供商的网络,使用基于HTTP协议的应用层协议和架设在Internet上的伺服器通信,伺服器则负责记录和处理通信数据备查。为了实现应用,需要专门的UI实现对收集到的定位数据进行聚类,分析和显示,如图1所示。
3.3项目分析
3.3.1 BASIC4PPC从GPS获取定位数据
项目中使用BASIC4PPC平台开发智能设备的应用程序,应用程序使用GPSDriver.dll模块访问设备中的GPS设备,获取定位数据。
图1
采用GPSDriver.dll实现的使用步骤:
1)创建GPSDriver.dll实例
2)定时使用GetDeviceData启动GPS并获取数据,GPS启用并搜星成功后,GetDeviceData返回有效定位数据,并根据NAEA 0183协议自动处理。关键部分形式描述如下:
定时过程
gps.GetDeviceData
If gps.GetGpsData(6000) = True Then处理定位数据
过程结束
3)关闭GPSDriver.dll实例。
在实际使用中,由于GPS需要消耗相当的电量,所以需要在根据实际情况,在不需要使用定位服务时候关闭和GPS对象的通信。
3.3.2利用GPRS或3G网络使用HTTP协议和伺服器通信
BASIC4PPC平台的HTTP.DLL模块很好的封装了HTTP协议,利用WebRequest和WebResponse对象能方便的向伺服器发送和接收数据。使用HTTP协议需要设备支持GPRS网络,能支持3G网络更好,通信效率更高。HTTP.DLL使用注意要点包括:
①创建WebRequest和WebResponse实例。
②构造好通信参数并使用WebRequest对象的GET方法向伺服器发送数据。
③使用WebResponse处理从伺服器收到的确认信息。
④重复②和③的过程。
⑤关闭创建的WebRequest和WebResponse
HTTP协议的GET方法格式为http://伺服器主机域名或IP/页面?参数1=X&参数2=Y......,例如向主机地址为www.myhost.com的主机getparamer.asp页面发送x坐标123和y坐标456,参数名为px和py,则GET方法的通信串为:http://www.myhost.com/getparamer. asp?px=123&py=456
在伺服器中获取的px和py数值是字符串形式的,因为使用HTTP协议通信,通常伺服器架设为web服务器,例如可以为IIS,Apache等,服务器上的脚本语言可以有许多选择,例如ASP,PHP,PERL,CGI等。
为了详细的报告当前智能设备的状态和位置,应该向伺服器报告当前的通信时间和GPS坐标,具体的参数格式根据具体情况确定。当然根据具体项目的实施可能还需要传递更多的参数或信息。
3.3.3 Ajax技术应用框架
jQuery是一个JavaScript库,它有助于简化JavaScript以及Ajax编程。jQuery使用Ajax的一般框架可以如下。
$.ajax({
url: 处理地址,
type: GET,
dataType: xml,
timeout: 1000,
error: function(){
alert(Error loading XML document);},
success: function(xml){
//获取数据后处理
});
配合setinterval函数定时进行和GPS数据服务器通信,对处理的结果进行无刷新更新页面内容。其中ajax中的function(xml)是回调函数,应根据不同的GPS应用模式进行对应的代码设计。结合使用Ajax技术可以使系统得到更佳的体验效果。
3.3.4电子地图API
伺服器得到gps数据后需要通过某个手段转换为可视数据,电子地图是体现数据很好的一个手段,国内外有多个地图数据提供商,几乎都是以API(应用程序接口)方式提供接入。这些提供商主API要包括Google Maps API、Microsoft Virtual Earth API、Yahoo Maps API、MapABC API、MapBar API、51地图API,都提供了详细的开发文档和范例。
3.4项目实现总结
根据上述框架和思路,在移动智能设备上使用基于BASIC4PPC平台开发的gps数据采集模块,并使用http协议和伺服器通信。伺服器采用Web服务接收gps数据存储、统计并通过电子地图API,把gps数据可视化。由于伺服器采用Web技术开发,可以应用现代主流Web设计技术,在UI上可以容易的实现人性化的用户界面。在系统实际应用中,由于地球环境的复杂性,现代勘测条件的局限,还应该对gps数据的进行修正,进行误差补偿。同时应该考虑gps信号比较弱的区域的处理手段,结合GSM蜂窝网络对数据进行修正。
参考文献:
[1]刘大杰.全球定位系统(GPS)的原理与数据处理[M].上海:同济大学出版社, 1997.
[2]邓中卫.世界GPS接收手册[M].北京:航空工业出版社, 1994
[3]江宽,龚小鹏.Google API开发详解:Google Maps与Earth双剑合璧[M].北京:电子工业出版社,2008
[4]Anywhere Software公司. Basic4PPC文档中心[OL]. http://www.basic4ppc.com/Documentation_Center.html
[5]RFC2068.Hypertext Transfer Protocol-HTTP/1.1[S].