随着移动通信技术、移动计算技术的发展,手机已不再仅仅以移动通话工具而存在,用户对手机的附加服务提出了更高的要求,而手机地图服务便是这些附加服务中一项有着广阔应用空间的服务。
J2ME(Java 2 Plat form Micro Edition,)是为无线电子市场所设计的又被称为Java 2 微型版,是Java 2 标准中专门针对小型移动设备的一个版本。而Mobile SVG 是专门为存储空间、电池容量和网络带宽有限的移动设备而设计的2D 矢量图形格式,是SVG 的子集。
面向手机的地图服务是基于位置的服务(Location Based Services, LBS)的重要组成部分,是空间信息技术、移动通信技术、移动计算技术等相结合的产物。作为一种新兴的服务,它的特点是移动性、手机的多样性、客户端的"极瘦"与服务器端的"极胖"、有限的带宽。
在设计和实现手机地图服务时需要对其特点进行充分的考虑。而选择合适的地图格式和服务的实现技术成为系统构建的首要因素。
一、J2ME 技术的选择
手机存储能力有限而且不能像掌上电脑一样利用Flash 卡存储信息,因此电子地图主要通过网络下载实时获取。手机地图服务的方式以现有技术从服务模式上可分为短信服务和手机上网服务两种。
1. 短信服务模式
短信服务模式主要以SMS 以及新近开始应用的MMS 为主。SMS(Short Messag ing Service)是一种在移动网络上传输简短消息的无线应用,是一种有限长度文本在移动网络上存储和转寄的过程。
SMS 使用简单方便,应用非常普及,但在内容和应用方面存在技术标准的限制,只能提供文字信息,而且文字的长度有限。对于地图服务而言,用简短的文字信息很难满足用户的需求。
MMS(Mult imedia Messag ing Service)以WAP无线应用协议为载体传送视频片段、图片、声音和文字。MMS 不像WAP 技术的Browser 方式需要庞大而复杂的网关,实现手段也相对简单,对客户端也没有太高的要求,而且应用较为广泛。但对于手机用户来说,它只发送图形数据,用户不能有太多的操作能力。目前MMS 所支持的图片格式多为栅格格式,放大时会得到模糊、有棱角的图像,而且栅格格式地图的数据量较大,不利于无线传输和移动计算。
随着MMS 对矢量图形格式的支持,它将是提供手机地图服务的一种较好的方法。
此外,不论是SMS 还是MMS, 其服务的实现都需要在提供服务的一端建立相应的网关系统和数据发送接收设备,加大了服务实现的难度和系统成本。
2. 手机上网服务模式
WAP Browser, I-mode, J2ME 等是目前手机上网服务模式实现的热点。通过WAP 技术,手机用户几乎可以在任何地方、时间获得网络提供的服务。
然而基于WAP 技术的Browser 方式访问Internet存在着一定的缺陷:①不能直接访问Internet , 需要庞大的Gateway 过滤;②只能显示WML, 不能显示复杂格式图形;③ 在线交易增加服务器负荷,速度慢;④ 不能访问本地存储区。
I-MODE(information-mode)是由日本NTTDoCoMo 公司开发的一种无线通信技术标准,借助I-MODE 可以实现计算机、PDA 以及其他兼容手机之间的I-MODE 数据交换。I-MODE 主要应用在日本。
与MMS 相比,J2ME 对手机要求相对高一些。
MMS 适合点对点应用以及信息点播服务,J2ME 则以开发交互式业务为主。J2ME 提供了HTTP 高级Internet 协议,使手机能以Client / Server 方式直接访问Internet 的全部信息,而且还能访问本地存储区,提供最高效率的在线交易,如手机已经存有地图则不必在向服务器申请地图数据,应用程序直接访问存于手机中的数据进行计算,有效减少了数据传输量。此外有越来越多的手机支持J2ME, 有利与服务的大众化。J2ME 与WAP Brow ser 方式和MMS 相比较有以下优点:①直接访问Internet 全部信息;②不同的Client 访问各种各样的文件;③最高效率的在线交易;④ 访问本地存储区,提高效率;⑤客户端程序可实时下载至本地执行。
根据以上分析,MMS 对手机较低的要求、相对成熟的技术及广泛的应用,而J2ME 直接访问In??
ternet 以及高效的本地访问都为手机地图服务提供了较好的方法。本文主要讨论基于J2ME 的Client方式访问Internet 上的地图服务器获取地图服务。
二、基于Mobile SVG的地图图形数据
地理数据有着复杂的数据结构,解决手机地图服务,首先要解决地理数据如何进行组织和编码。
Mobile SVG 是SVG 的子集,它包括SVG Tiny和SVG Basic.SVG Tiny 适于存储和计算能力有限的低端设备,SVG Basic 适于存储和计算能力限制较小的高端设备。在手机地图服务中应用有着其他图形格式不可比拟的优越性。与其他图形格式相比有以下优点: 动态性与可放缩性、较小的体积、可存储图像信息、平台独立性、开放的标准。
SVG Tiny 和SVG Basic 都支持标准SVG 中定义的基本图形。然而移动SVG 是针对移动设备制定的,它对SVG 又有所精简,如SVG Tiny 并不支持SVG 中的
元素,不能利用
元素来实现地图中的面状符号。在手机上应用移动SVG 必须针对应用对地图图形数据进行相应编码,从而减少数据传输量和客户端的计算量。而手机大多为有严格限制的设备,因此在数据设计尽量符合SVG Tiny 所定义的规范。
考虑到移动SVG 的特点,可以将地物按其几何形状分为点状实体、线状实体、面状实体,以及注记体四类并用SVG Tiny 进行组织和编码。
三、手机地图服务的设计
根据前面的分析,面向手机的地理信息服务整体结构采用C/ S 3 层分布式的网络模型,分为数据层、中间层和表示层,如图1.
图1 手机地图服务系统结构
数据层: 主要是分布在各Web 站点的地图数据库以及其他信息系统。该层包括存有空间数据和属性数据的分布式空间数据库、存有空间信息的文件系统以及其他信息系统。由空间数据引擎与中间层连接,负责提供所需的数据。
中间层: 中间层负责根据用户的需求向数据层申请数据完成必要的信息处理并与客户端进行交互。通过手机无线上网获得地图的服务,类似与一个客户端"极瘦"和服务器端"极胖"的Web GIS.因此可以采用容易集成的Web 服务技术对外部提供统一的接口。中间层设有Web 服务器和地图服务器,Web 服务器接受客户端以HTTP 协议发出的服务请求,将这些请求转给地图服务器,而地图服务器接受请求并根据相应的请求启动相应的数据引擎从后端分布式空间数据库以及其他系统中进行检索,将检索的结果处理并压缩后,将结果转给Web 服务器,由Web 服务器返回给客户端。
表示层: 主要为各类手机设备,根据其存储和处理能力可分为高端手机和低端手机。
1. 低端手机。
低端手机主要负责实现图形用户接口,完成数据的表示,简单的地图操作如地图放大、缩小等。低端手机处理和存储能力有严格限制,大部分的计算工作由服务器承担,手机只能负责空间数据的可视化以及用户与服务器的交互界面。为适应带宽的限制,服务器向低端手机传输的SVG 文件只包含图形数据。当用户需要服务时向服务器申请数据,服务器响应用户申请将含移动SVG 格式空间数据发送至客户端解析后得到可视化的地图。当用户需要进行属性或其他信息查询以及数据处理任务时,则再次与服务器交互。
2. 高端手机。
高端手机如PDA 型的手机,处理和存储能力的限制较小,可以承担一定的计算工作,而且手机本身可以存储一定的地图数据,可进行地图操作,和较简单的查询。其移动SVG 地图发布处理模型如图2所示。服务器向手机发送的数据不仅包含图形数据,还可以附加有属性数据等其他数据,便于在客户端进行计算,减少手机与服务器交互的次数。高端手机在得到地图数据后,大部分地图操作、属性查询以及简单计算任务都可在本地完成,只是在处理一些较复杂的计算时才向服务器申请。
图2 高端手机移动SVG 地图发布处理模型
用户以文本的形式输入查询条或根据手机所处的位置向服务器申请地图服务,位于中间层的服务器解析用户查询条件,从后端数据库中检索用户需要的专题图层和比例尺,显示地图片段及相关信息,经过处理压缩后根据用户注册的手机信息由无线通信网返回适合的地图数据至手机终端,再由客户端程序在手机显示屏上显示地图等信息。
四、系统开发的关键技术
1. 图面信息的简化
手机地图服务不同与有线网络的地图服务,没有必要提供非常详细的图面信息,这也是由手机的特点决定的。
2. 地图数据的压缩
在手机地图服务中,电子地图较大的数据量和手机有限的存储空间以及无线网络有限的带宽存在矛盾。这就要求在数据存储和传输时,相同条件下必须对地图数据进行压缩。空间数据在误差范围内可进行有损失的数据压缩。在数据传输时,再对地图数据进行无损失的数据压缩。虽然采用MobileSVG 对地图数据进行编码后与位图比较起来已经小了很多,但通过一定的技术可以对移动SVG 数据进一步进行压缩。和所有XML 数据一样移动SVG数据有高度的可压缩性,使用XMIL 可以以较高的压缩因子对移动SVG 数据进行压缩。因此在服务器端和客户端还必须配置相应的压缩和解压程序。
3. Mobile SVG在客户端的解释
手机向服务器申请到的地图数据是MobileSVG 格式的矢量数据,在客户端实现地图的显示就需要对SVG 数据的解析,而Mobile SVG 是XML在移动图形方面的应用,它本身是基于XML 的。
因此就涉及到在客户端如何解释XML 数据的问题。手机上选择XML 解析器通常要求解析器本身要小、可移植性强、易于编程而且相对速度要快。而作为嵌入式设备中使用的KXML2 开源解析器是较好的选择。
4. 基于J2ME 的嵌入式程序设计
系统运行过程中,用户和终端系统之间又很强的交互性,这种交互性需要终端系统提供友好的用户界面。J2ME 拥有丰富的菜单功能,易于用程序实现自定义的菜单,并提供事件响应机制。而且J2ME 可以通过HTTP Connect ion 接口解析U RL,设置请求以及解析响应就可以方便和服务器进行通信。同时J2ME 还是一种高度优化的Java 运行环境,采用J2ME 技术进行开发,可以实现设备和平台的无关性,达到真正的跨平台和跨设备。
五、总结
移动通信技术和空间信息技术的进步以及手机的逐渐普及,使得向移动用户提供地图服务成为可能,而向手机提供地图服务又是手机附加服务的热点之一。本文分析了对手机提供地图的有关服务方式,并采用J2ME 以手机上网的方式获取地图,利用Mobile SVG 对地图数据进行组织和编码,在此基础上设计了基于J2ME/ SVG 的手机地图服务并对其关键技术进行讨论。希望对服务的实现有所裨益。