基于MapXtreme的WebGPS系统的设计与实现
袁陶颖,王忠,刘丹
四川大学电气信息学院通信工程系,四川成都610065
摘 要:WebGPS是一套基于网页的车辆管理系统,它提供了一种从网页上远程访问,并实时显示车辆当前行驶位置的手段。构建一个这样的WebGPS系统,必须要有一个提供地图应用服务的平台。分析了整个系统的模型,比较了多种地图服务平台,指出了MapXtreme for Java作为地图服务器的优势,最后说明了MapXtreme系统的开发方法及功能实现。
关键词:MapXtreme;Browser/Server;Client/Server
中图法分类号:TP311.13 文献标识码:A 文章编号:1001-3695(2004)05-0109-02
随着GPS定位技术的出现,以及GIS和通信技术的成熟,交通运输高度工作进入了计算机辅助支持的实时管理新阶段。GIS地理信息系统不仅可以管理数据、文字信息和图形,而且是以空间时间为研究对象,以计算机为工具,交不同来源、不同类型的数据和相关的忏悔信息进行有机结合、分析查询,实现计算机信息处理,是综合处理和分析空间数据的一种有效的技术系统。西方主要基于MapXtreme for Java地理软件平台的WebGPS系统的设计与实现方法[1,2,4]。
1. 系统模型选择
目前,GPS信息在网上发布主要有两种方式:C/S方式和B/S方式。
(1)与C/S模式相比,B/S模式主要具有以下优点:①它简化了客户端,只需要安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便。②B/S特别适用于网上信息发布。B/S软件往往在客房端采用微软独家支持的ActiveX技术来解决浏览器和HTML页面的交互性差问题。③浏览器/Web服务体系的跨系统、跨平台的能力,使它可以在一个公共的相互配合的网络中使用各种不同的系统,如PC,Mac和基于UNIX的工作站,使得它们可以共存。
(2)与B/S模式相比,交互性强是C/S固有的一个优点。B/S虽然由JavaScript,VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比是太有限了。其次,采用C/S模式将降低网络通信量。B/S采用了逻辑上的三层结构,而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量,所以,C/S处理大量信息的能力是B/S所无法比拟的。
(3)综合结论:整修系统采用以Browser/Server方式为主,Client/Server方式为畏的混合体系结构。其中,B/S方式用于查询和浏览,因为B/S方式具有广泛的信息发布能力。它对前端的用户数目没有限制,客户端只需要普通的浏览器即可,不需要其他任何特殊软件;另外对网络也没有特殊要求。而C/S方式主要用于数据维护,同时也具有与B/S方式相同的查询功能,因为C/S方式具有良好的交互性,这点是B/S方式所不具备的。
2. 地图服务平台的选择
构建一个WebGPS系统,必须要有一个提供地图应用服务的平台,选择MapInfo公司的MapXtreme for Java作为地图服务器,主要基于以下原因:
(1)MapXtremeJava采用的是三层结构,包括客户机、客户机/服务器以及服务器。在MapXtreme的工作方式下,所有的地图数据和应用程序都放在服务器端,客户端只是提出请求,所有的响应都在服务端完成,只需在服务器端进行系统维护即可,客户端无需任何维护,大大降低了系统的工作量。由于是采用的B/S方式,不仅可满足现在各点的需求,以后用户数可以任意增加。对数据的修改更新可由服务器端集中处理,则可由各分站修改后通过C/S结构传输上报。
(2)MapXtremeJava与其它地理服务平台(如MapX)相比,它对客户端的要求最少,客户端上只需有支持Java的浏览器就可以完成地理信息的浏览和查询。MapXtreme不仅可以胜任B/S广域网架构、也同样可以支持C/S架构,而且经过比较,在这两种结构下,系统的运行速度相差并没有想象中那么大。
(3)MapXtremeJava是一个100%的Java产品,具有很好的跨平台特性,可以将应用和数据发布在不同平台不同计算机上(如UNIX,Linux,Windows平台)。此外,MapXtremeJava可扩展性好,它基于组件的设计、可靠性和多线程等,为不断扩展应用程序提供了保证。
(4)使用MapXtremeJava,开发人员能集中地控制和维护地图和数据库数据,并集中实现应用程序功能,避免了以往系统的维护、同步困难的问题,尤其适合信息量大、用户多的单位的实际情况。
(5)使用MapXtremeJava平台可以做到将网络发布与数据库相隔离,同时运用Web发布服务器和数据库服务器。这样,既啬了网络安全性,也便于对数据库进行维护。
3. MapXtremeJava的开发方法[3]
(1)初始化地图对象
执行:myMap=new MapJ()。
(2)加载地图数据
MapXtreme没有默认的地图数据,所以必须人工加载地图数据,可以打开GeoSet(*.gst)或MapDefinition(*.mdf)文件加载地图数据。
①加载GeoSet:myMap.LoadGeoset(geosetName,dataDir,servletURL)。
其中,geosetName:geoset完整文件名(包括路径);dataDir:geoset中引用的tab地图文件的位置;servletURL:MapXtremeServlet的路径,如果MapJ使用LocalDataProviderRef,servletURL则可为NULL。
②加载MapDefinition
首先加载数据库中的地图定义记录,并创建MapDefContainer,如MapDefContainer mdc=new JDBCMapDefContainer(driver,url,user,password)。其中,driver,url,user,password都是数据库连接的参数。
(3)设置地图尺寸
输出地图图像前需要设置地图尺寸,设置方法为:MapJ.setDeviceBounds(),如myMap.SetDeviceBounds(new DoubleRect(0,0,800,600))。
①指定MapXtremeServlet的地址
String mapxtremeServletUrl=http://localhost:8080/mapxtreme40/servlet/mapxtreme;
②创建ImageRequestComposer
imageRC=imageRequestComposer.create(myMap,256,Color.green,"image/gif");
表示图片是256色背景为绿色的GIF图。
③创建ImageRender
MapXtremeImageRender renderer=new MapXtremeImageRenderer(mpaxtremeServletURL);
④生成图片
Renderer.render(imageRc);
Renderer.toImage("comp.gif");
(5)地图显示
①地图视野设置(Zoom)
Zoom值是地图的横向跨度,单位由地图的距离单位决定。设置Zoom可放大、缩小地图。当地图被加载时,Zoom值就被设定了。用myMap.setZoom(100),可以将地图的横向跨度设置到100千米(若当前的单位是千米)。
②地图中心设置
把地图中心定位在找到的目标上或将中心定位到鼠标所点击的图像上某一点。下面程序实现将地图中心定位在鼠标点击的某一点处:
//创建屏幕坐标的Point对象
screenpoint = new DoublePoint(event.getX(),event.getY());
//将屏幕坐标转换为地理坐标
worldpoint=myMap.TransformScreenToNumeric(screenpoint);
//设置地图中心
myMap.setCenter(worldpoint);
③地图鹰眼功能
鹰眼窗口和地图主窗口都使用一个Applet容器放置地图对象MapJ。创建两个MapJ对象,并session.putValue("mapinfo.mapj",myMap);用的时候再:MapJ myMap=(MapJ)session.getValue("mapinfo.mapj")。这样,对两个MapJ控制不同Zoom和Center即可。
因为鹰眼和主地图是连动关系,并且鹰眼并没有使用固定视野的方式,所以鹰眼对象后台需要重新初始化一个MapJ对象,并使用简易版的gst或者mdf地图集合。连动机理如下:①MainApplet上的地图操作→MapJ重新渲染返回新图片地址→MainApplet捕捉新图片刷新命令重画地图→OverViewApplet自动刷新。②OverViewApplet上的地图操作→MainApplet重画→主MapJ重新渲染返回新图片地址→MainApplet捕捉新图片刷新命令重画地图→OverViewApplet自动刷新。另外,在MainApplet上的地图操作只有放大、缩小、平移操作会导致鹰眼地图刷新,其他地图重画不会造成鹰眼地图刷新。
4. MapXtreme的应用实现
WebGPS车辆监控管理系统,是一个将矢量地图和属性关系数据库紧密结合起来的网络化的GPS地理信息系统。在MapXtreme的工作方式下,所有的地图数据和应用程序都放在服务器端,客户端只是提出请求,所有的响应都在服务器端完成,只需在服务器端进行系统维护即可,客户端无须任何维护,大大降低了系统的工作量。
通过在后台服务器端运行MapXtreme,响应Internet用户对空间信息及与图形相关联的属性信息的访问请求,实现了以下功能:
(1)利用浏览器浏览地图图片,并能进行各种地图操作(放大、缩小、漫游、图层控制等);
(2)地理信息(GIS)查询,如地名、街道、企事业单位等;
(3)车辆位置的在线查询和跟踪监控,用户输入车辆终端号码后,从数据库中取出该用户最新的位置和时间信息,在地图上用选择的图标显示出来,并在车辆信息栏中显示出该车辆的档案信息、时间以及所处的街道;
(4)车辆及车主信息查询、轨迹回放;
(5)车队的管理和调度,授权用户可将不同任务的车辆进行编组、命名,分别管理(添加新的车辆或减少、删除组等)。
图形信息及相关数据查询结果如图1所示。(图略)
5. 结束语
WebGPS车辆监控管理系统的发展和建立是21世纪城市交通发展的趋势。作为实现WebGPS的一个重要环节--地图服务器MapXtreme的研究,将在越来越多的应用领域得到应用。
参考文献:
[1]邬伦,张晶,等。基于WebGIS的体系结构研究[J]。地理学与国土研究,2001,17(4):20-24
[2]余趁肖,陈军,等。基于GPS的车辆导航监控系统研究[J]。交通与计算机,2001,(5)
[3]MapInfo MapXtreme for Java开发指南[EB/OL].http://www.mapinfo.com
[4]张广莹,张广宇,等。地理信息系统在智能交通中的应用[J]。自动化技术与应用,2001,(2):30-33
作者简介:袁陶颖(1981-),女,硕士生,主要研究领域为分布式计算机系统、GPS技术;王忠(1964-),男,硕士生导师,博士,主要研究领域为GPS理论与技术、GIS技术、4G移动通信关键技术、医学图像处理,深化科学,已发表科研论文50余篇。