摘 要:本文研究了Mobile SVG的移动GIS数据可视化方法与实现的可行性,通过GIS数据可视化方法,结合显示对象转换、坐标转换和地图符号的可视化表达对Mobile SVG的地理数据可视化表达方式经行分析。Mobile SVG能够带来一些传统GIS数据可视化方法无法提供的优势。结果表明,Mobile SVG解决了栅格地图数据量大和缩放失真问题,实现了地图数据的矢量化表达。
关键词:移动GIS Mobile SVG 可视化
中图分类号:P208 文献标识码:A 文章编号:1672-3791(2012)11(a)-0021-03
GIS是以地理空间数据库为基础,在计算机软硬件的支持下,对空间相关数据进行采集、管理、操作、分析、模拟和显示,并采用地理模型分析方法,适时提供多种空间和动态的地理信息,为地理研究和地理决策服务而建立起来的计算机技术系统[1]。
随着技术进步与社会发展,各个领域对地理信息服务需求也不断增加,急切要求一种具有移动性能且能够以任何时间、任何地点、任何设备方式进行工作的GIS(Geographic Information System,地理信息系统)。在此背景下,移动地理信息系统(Mobile GIS,MGIS)破土而生,近几年也得到了快速发展。
移动GIS是建立在移动计算环境、有限处理能力的移动终端条件下,提供移动中的、分布式的、随遇性的移动地理信息服务的GIS[2]。
移动GIS系统地理数据的可视化表达是其要解决的首要问题。目前地理数据可视化表达主要有两种方式:矢量化图形和栅格图像。
矢量化表达方式的优点是地图不失真、数据量小,缺点是实现复杂和需要终端具有很强的图形处理能力。栅格图像表达方式的优点是容易操作和实现,缺点是数据量大和地图操作有可能产生失真现象。
SVG(Scalable Vector Graphics,可扩展矢量图形)是一种以XML为基础规范,描述矢量图形和矢量/点阵混合图形的标记语言。根据移动智能设备的特点,W3C组织在SVG规范的基础上开发了适应移动智能设备的Mobile SVG基本规范,它含有两个子集:Mobile SVG Basic—— 用于高端移动智能设备图形表达和Mobile SVG Tiny——用于低端移动智能设备图形表达。
本文正是基于Mobile SVG Tiny这种矢量图形的可视化技术,来研究移动GIS地理数据的可视化方法。
1 移动终端GIS数据的转换
由于地理数据本身的特殊性和可视化需求,需要将其转换到移动终端显示设备可输出的图形/图像格式;其中包含可显示地图对象的转换,和地图坐标与显示屏幕坐标转换。
1.1 显示对象转换
移动地理信息系统的物理载体—— 移动智能终端可显示对象有:图形对象、文字、图像和标记等,通过Mobile SVG中对相应对象进行转换,如表1。
折线、面、矩形、文字、图形、圆形、直线等都有对应的图形/图像标记元素进行表达。图像用image标记描述,image属性含:图像左上角坐标(x,y)、图像高度height、图像宽度width和超链接xlink:href。地图标记用symbol表达,symbol必须与use一起使用;symbol用来定义标记,use用来渲染symbol对象[3]。
1.2 地图坐标与显示屏幕坐标转换
转换坐标是空间实体对象位置的描述,就是从一种坐标系统转换到另一种坐标系统的过程。可以通过建立两个坐标系统之间一一对应关系的算法来实现。是各种比例尺地图测量和编绘中建立地图数学基础必不可少的步骤。
我国常用的大地坐标系统有:1954年北京坐标系、1980年西安坐标系、WGS84坐标系、ITRF坐标框架和地方坐标系统等[4]。
Mobile SVG图形/图像对象的坐标系统属于二维平面坐标系。它与笛卡尔平面坐标系不同的是y轴向下。(如图1)
地图数据在移动终端进行平面直接将地理坐标转换到Mobile SVG的坐标是不合适的,它需要按照数学法则将地理坐标转化为地图平面坐标,再将地图平面坐标转换到Mobile SVG坐标。地理坐标转化为地图平面坐标有很多投影变换算法,不再赘述。
Mobile SVG图形坐标与地图平面坐标转换算法见公式1。其中,(Xs,Ys)是Mobile SVG图形坐标,(Xg,Yg)为地图平面坐标,Scale是地图缩放比例,(Xs_c,Ys_c)为Mobile SVG图形中心坐标,(Xg_c,Yg_c)为地图中心坐标。
(1)
2 移动GIS数据对象的可视化表达
2.1 用Mobile SVG表达地图符号
根据符号的几何特征,地图符号主要分为点状符号、线状符号和面状符号[5]。
Mobile SVG不是专为地图表达制定的规范的,并没有预先定义常用的地图符号。如要使用Mobile SVG表达地图,必须自行设计地图符号。
(1)点状符号。
点状符号的定位点表示物体的位置,其形状或颜色的色相来表示物体的含义。Mobile SVG中没有地图点状符号元素,只能用Mobile SVG元素或元素组合来表达地图里的点状符号。图2是一些点状符号的设计示例。
可以用Mobile SVG的symbol元素来定义要显示的点状符号的形状、样式和色彩等,再用use元素来渲染和定位。代码如下:
......
......
......
代码中的“
由于Mobile SVG Tiny不支持symbol元素的渲染,还可以用“
......
......
......
(2)线状符号。
线状符号的形状或颜色的色相表示物体的类别,符号的中心线表示物体的位置;它有自己的方向性,并且与地图的比例尺有关。线状符号有单线、双线、虚线以及点线之分。线状符号能够表达事物的形状、弯曲程度及延伸方向。
Mobile SVG用直线—— line和折线——polyline来表达线状元素;他们的样式可以用CSS进行定义。复杂的地图线状符号要借助元素组合来表达。线状符号的Mobile SVG设计示例如图3。
图3中,铁路线型需要两个线元素组合描述,高速公路线型是三个线元素组合描述的,等高线型由单个线元素描述。代码示例如下。
......
......
(3)面状符号。
面状符号用颜色的色相、亮度、饱和度等表示物体的性质,通过其外围轮廓线来表示物体的分布范围。
Mobile SVG用polygon表达面状地图元素。规则的面状元素如矩形、圆形等可以分别用rect、circle等来描述。图4是一些面状符号设计示例。
如在面状符号内填充图案,就需要自定义图案。对于不需要填充图案的面状符号,可以用polygon直接表达。代码示例如下。
......
patternUnits="userSpaceOnUse" viewBox="0 0 10 10" >
x="213" y="20" height="50" width="35" id="rect_id" /> ...... 2.2 地图渲染与数据解析 移动终端业务应答数据封装在XML中,需要专门的XML解析器进行解析数据。XML文档解析的接口目前主要有三种。 (1)SAX。 (2)XPP。 (3)DOM。 XPP是最近开发的,只能适当支持XML文档的子集但不提供验证的任何支持。它具有尺寸小的优势。SAX是XML分析器和XML处理器提供的较XML更底层的接口。SAX通过事件驱动来识别XML文档的内容,即当它在XML文档中发现特殊符号时,它就会触发相关的事件。DOM不仅提供了对存储在内存中的XML文档的一个完全的表示,也提供了随机访问整个文档的方法。与DOM相比,SAX对内存的需求要少得多,可认为其是一个轻量级的接口集合。 需要从移动地理信息系统的实际情况出发来选择解析XML解析器和相对的解析接口。移动终端采用XPP编程接口对业务应答数据进行解析,利用KXML2解析器。 解析器可以从业务应答数据提取出属性数据、地图数据等。 Mobile SVG渲染地图模块调用Java ME可选包JSR226 API。Mobile SVG的渲染顺序是先定义的先渲染。图5是渲染流程。 3 结论 Mobile SVG可以实现地图数据的矢量化表达,解决了栅格地图数据量大、缩放失真等缺点。Mobile SVG矢量化地图数据的可视化方法也有客户端图形渲染时间较长等缺点。控制需渲染图形元素数量是减少图形渲染时间的有效手段。可采用图层控制显示方法在移动终端完成Mobile SVG地图可视化。将地图要素按种类分层(如道路层、绿地层等),在地图显示之前,用户选择需要渲染的图层,确定显示元素,即是图层控制;也即若用户不需要显示某些图层要素,则不进行客户端渲染;这样就可以大大减少图形渲染时间。 参考文献 [1] 张超,陈丙咸,邬伦.地理信息系统[M].北京:高等教育出版社,1995:4-18. 8BxRdfBT5DBudp6g02iDVQ==[2] 移动GIS的概念和特点[DB/OL].(2008-01-29)[2008-05-10].http://www.sbsm.gov.cn. [3] http://www[EB/OL].w3.org/TR/SVG11,2003. [4] 周卫,孙毅中,盛业华,等.基础地理信息系统[M].北京:科学出版社,2006:20-39. [5]张为成.GIS中地图符号的研究[D].长春:吉林大学,2006:9-21. [6] 徐爱民.基于J2EE/XML的LBS系统研究与实践[D].郑州:解放军信息工程大学,2004:7-8. [7] 移动终端操作系统与开发平台[DB/OL].(2007-03-26)[2008-05-10].http://www.j2megame.org. [8] 张超.地理信息系统应用教程[M].北京:科学出版社,2007:133-135. [9] (美)James Keogh.J2ME开发大全[M].潘颖,王磊,译.北京:清华大学出版社,2004:1-29. [10] http://www.svgopen.org,2008.