8.4.4 武汉大学基于J2EE的解决方案
1.体系结构
基于J2EE的移动地理信息服务是采用J2EE的体系框架来构造基于多层体系结构的移动定位服务系统。如图8-8所示,包含信息设备、网关代理软件、GIS应用服务器和空间数据库4个主要的部件。
图8-8 基于J2EE的移动地理信息服务软件体系结构
信息设备包含WAP手机终端、J2ME手机终端、PDA手机终端和PALM终端4种类型。
GIS应用服务器中的定位服务业务逻辑可以概括为以下的5个方面。
①地理编码服务。地理编码服务是一个基于地理坐标例如经纬度的位置匹配过程。经过编码后的地址能够用于诸如点之间距离量算或在一个边界区域内查找某个地址的空间操作。通常而言,地理编码需要删除一些地址和做一些标准化的工作。
②可视化服务。通过联合使用点、线、面、注记、符号、阴影、颜色和指标系统来表达空间数据。在地形数据中,采用坐标系统把数据和现实世界有机地联系起来。在大多数基本层次上只是简单地把地理坐标系统简单地增加到可视化的处理流程中。
③空间分析服务。定位信息可以帮助我们完成采用其他方法无法完成的大范围分析任务。包含邻接、点在多边形、线在多边形、面在多边形、缓冲和叠置分析等。
④路径和地址查找服务。它回答“到达目标的最佳路径”和“当前地址是什么”两个问题,提供给用户从简单的驾驶方向到复杂的路线和车辆路线安排信息,可以用于物流配送、紧急事故处理和个性化用户服务。
⑤基于地理的统计服务。如今,能够获得包含购买模式、行为、心理和交通大量的历史和现在的客户信息。可以把客户信息与空间信息整合在一起做统计分析,这种分析可以用于指导生产、部署自动销售机、监测目标市场和分析临近客户。
数据库服务器包含空间数据库、位置信息数据库、POI数据库和POA数据库4个部件。空间数据库存储地形数据,例如数字线画图、数字栅格地图和数字地面模型数据,可能包含居民地、水系、道路和区域注记等内容;位置信息数据库记录当前信息设备的位置信息,通常由电信部门或位置服务提供商维护;POI数据库为信息点数据库,系专业数据库,除了提供空间信息外,通常还提供包含名称、联系方式、所在位置和等级等属性;POA数据库为兴趣区域数据库,内容与POA数据库一致。
2.GIS应用服务器
GIS应用服务器主要完成制图服务中关键业务逻辑的处理,例如包括坐标转换、地理编码、地址匹配等耗时的GIS处理。通常而言,MLS中的GIS应用服务器要能够完成地图服务、特征服务、地名服务、黄页服务、地物层服务、新闻服务、路况服务和最佳路径服务等。图8-9所示为基于JSP、Servlet和XML的GIS应用服务器的结构图。其中,GeoXML是运行在Web服务器上的JSP应用程序,同时又是RMI客户机。系统通过它与客户机打交道,接受请求和转送请求到GIS应用服务器中进行处理,然后返回应用服务器的处理结果到浏览器。当GeoXML接受来自客户端的调用请求时,接受客户端到服务器之间的联系GeoRequestDOM(包括客户端传送的参数名称,客户端正在使用的协议,产生请求并且接受请求的服务器远端主机名,请求的操作类型(例如读取数据,空间分析等),并且把这些请求通过远程方法调用GIS应用服务器上的RMI服务器,启动相应的部件完成任务,把任务传给GeoXML,实例化GeoReponseDOM,返回客户机。GIS应用服务器是一个基于Servlet的应用服务引擎,它通过调用JavaBean组件完成地图表现的扩展,通过调用GIS EJB组件从远程空间数据库中完成地图数据的获取和其他业务逻辑。
图8-9 基于JSP、Servlet和XML的GIS应用服务器的结构图
3.信息设备空间信息可视化
在信息设备地图的可视化方面,笔者采用了矢量地图渐进传输显示和地图符号本地、远程扩展两种方法。
①矢量地图渐进传输显示。在传统的地理信息系统中,一般是通过联合使用点、线、面、注记、符号、阴影、颜色和坐标系统来表达空间数据。在地形数据中,采用坐标系统把数据和现实世界有机地联系起来。在大多数基本层次上只是把地理坐标系统简单地增加到可视化的处理流程中。在Web分布式环境中,由于有限的带宽不可能把所有的数据一次性全部下载到客户端,因此矢量地图数据采用渐进传输的方式,包含文件流和对象流的方式。所谓文件流的方式,就是从服务器到客户机传送的数据是以字节数组传输的,数据解释和对象化的工作在客户端进行,可以采取边读边画和读完再画这两种基本的方式来表现矢量地图,这种方式在服务器配置比较低而客户端配置较高的情况下有一定的优势,如果客户机配置较低的话,速度比较慢。所谓对象流的方式,就是从服务器到客户机传送的数据是对象传输的,数据解释和对象化的工作在服务器进行,可以采取边读边画、读完再画这两种基本的方式来表现矢量地图,这种方式在服务器配置比较高的情况下优势比较明显,客户机显示速度快。无论是文件流还是对象流传输方式,在客户机和服务器上都要有数据缓存管理。数据缓存管理的主要任务是完成服务器和客户机之间的数据调度,即保持数据获取的一致性、完整性和快速性。因此数据显示的过程为:
——根据当前的屏幕显示区域的范围{[screenStartx,screenStarty],[screenEndx,screenEndy]}和当前比例尺以及实际库坐标的范围{[realStartx,realStarty],[realEndx,realEndy]}初始化整个画图区域双缓冲区。
——首先根据当前的比例尺在客户端获得当前可视地物类编码,再根据当前可视地物类编码和屏幕显示区域的范围从数据库中获得对应的OID集合。
——根据服务器端的OID集合的缓存管理,得到需要重新获取空间数据的OID集合。
——根据新的OID集合从数据库获取空间数据记录、解释和对象化。
——通过网络传输到客户端进行显示。
②地图符号本地、远程扩展显示技术。矢量地图加上符号后,会大大增加图形的表达效果。在传统地图软件实现中,地图符号已经是一个必不可少的元素。在信息设备上的地图符号化,还必须考虑无线网络的数据传输量。矢量图形在显示或打印时都要经过数据过滤,过滤量在80%以上。直接采用过滤后的(屏幕或打印纸)设备坐标进行地图符号化,不仅显示速度快,而且不增加数据传输量。一种直接的做法是不用任何图形拟合,直接对过滤后的设备坐标进行符号化处理。这种方法可以称为地图图形本地扩展。在一幅地图中使用数据助理直接为每一层的数据获取地图属性,然后根据这些属性,符号化这些地图实体或生成专题地图和统计地图。这种方法适合于宽带无线网络环境下PDA型的手机。另外一种方法称为地图的远程扩展,即显示和图形扩展在不同的机器上完成,在服务器上先执行地图符号本地扩展的功能,然后生成特定格式的栅格地图,传输到客户机进行显示。这种方法适合于窄带网环境下WAP和J2ME型手机。例如在GeoSurf的影像服务中,GeoSurfImageRenderer能够从一个URL参考到一个GeoSurfServlet实例中创建。当GeoSurfView使用一个GeoSurfImageRenderer时,意味着要从一个GeoSurfServlet实例中获取栅格地图,GeoSurfServlet通过返回一个栅格图像到客户端响应这个请求。
4.实例
本书采用GeoSurf作为服务器端的GIS应用中间件平台,采用Tomcat4.0.3作为基础应用服务器平台,采用Oracle8i作为数据库平台,构造了基于J2EE的移动地理信息服务系统。在GIS应用中间件平台基础上,扩展了地图表现和请求应答模块。采用JSP技术来获得WAP终端和J2ME终端的XML请求,把这些XML请求分门别类通过业务逻辑引擎处理,再以XML打包,发送给客户端。对于WAP终端,如图8-10所示,系统发送的地图格式为WBMP;对于J2ME终端,如图8-11所示,系统发送的地图格式为PNG和矢量数据。
图8-10 WAP手机终端地图实例
图8-11 J2ME手机终端地图实例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。