一种基于四叉树编码的要素分级显示过滤技术

2014-08-15 01:40徐红波郝立贞
测绘通报 2014年6期
关键词:四叉树瓦片字段

徐红波,郝立贞

(1. 浙江省地理信息中心,浙江 杭州 310012; 2. 浙江省测绘大队,浙江 杭州 310030)

一、引 言

目前,为提高服务器响应速度和改善用户体验,人们在WebGIS应用中普遍采用地图瓦片技术,即按照一定的数学规则,把地图切成一定规格的小图片集保存到服务器上。当用户通过客户端浏览器访问地图服务时,不是由服务器实时创建一幅图片来送到客户端,而是服务器直接返回当前地图坐标区域所对应的小瓦片后在客户端拼接成地图,这样就可以通过降低服务器负担来极大提升地图浏览的速度[1-4]。由于地图瓦片为静态图片数据,一般不能修改其中的地图显示样式,因此在生成地图瓦片前,需要将地图数据进行合适的符号化设置,同时要根据地图数据的特征,考虑在不同的显示比例尺下显示一定数目的要素,做到没有严重的要素压盖、重叠现象。为了减少要素压盖、重叠现象,通常根据图层中要素的分类代码、等级、类型、级别、年份等属性分层过滤要素,使得在不同的显示比例尺下显示不同数目要素,显示比例尺小时显示要素数目少,随着显示比例尺的增大,显示要素数目逐渐增多。但是通过属性进行分层过滤在图层要素数目很大、要素空间分布不均匀等情况下常存在不同显示比例尺间过渡不自然、要素存在局部聚集等现象,据此符号化设置生成的地图瓦片数据在地图缩放过程中有要素突然变多、要素疏密不均之感。

为提高针对要素数目多、空间分布不均的地图数据的瓦片效果,本文提出基于四叉树编码的要素分级显示过滤技术,即通过对地图数据要素根据其空间坐标生成不同长度的四叉树编码,在不同的显示比例尺下显示不同长度的四叉树编码的对应要素,从而实现地图数据的缩放效果自然流畅、显示要素分布均匀。

二、四叉树编码原理

空间数据的四叉树编码是将二维区域按照4个象限进行分割,并为分布于每个象限中的空间要素赋编码的过程。每个象限区域可以继续分割为4个子象限,依次类推,直至象限内只有一个空间要素为止。其编码方式如图1所示。

图1 四叉树编码原理

根据该原理可以将空间数据赋指定级别的四叉树编码,编码的长度代表编码的级别,如“3241”代表四级四叉树编码。

三、基于四叉树编码的要素分级显示过滤

基于四叉树编码的要素分级显示过滤通过对不同要素赋不同长度的四叉树编码,在不同的显示比例尺下显示不同长度四叉树编码的要素。

1. 一定级别的四叉树编码生成

根据分级显示的需要,确定四叉树编码的级别L,这里的级别L可能比实际要素最长的四叉树编码级别少。级别L根据需要设置。一般的,四叉树编码到第10级即可较好地实现分级过滤显示。确定编码级别L后,为每个要素计算其对应的L级别的四叉树编码。

(1) 计算L级四叉树编码

依次判断每个空间要素对应L级四叉树编码,并将其记录在要素四叉树编码字段SCSCODE中。L级四叉树编码由L个数字组成,10级四叉树编码形如“2412314223”。

(2) 四叉树编码过滤

每个要素生成四叉树编码后需对其进行过滤,即在一个级别的四叉树编码中,均保留其中编码不重复的要素,重复编码要素保留其一。由于四叉树在空间上将区域平均分布为4L个子区域,每个子区域最多保留一个要素,实现空间上过滤出的要素平均分布。四叉树编码过滤时自下而上进行,即从最长一级(L级)四叉树编码开始过滤,直到第1级,从而使图层具有不同层次要素,实现要素在空间分布上的分级。建立L个四叉树编码字段SCSCODE1、SCSCODE2、…、SCSCODEL,用于存储经过过滤后的四叉树编码。由于级别L可能比实际要素最长的四叉树编码级别要少,对于L级的四叉树编码,可能存在多个要素对应同一个四叉树编码的情况,此时,需要从相同的四叉树编码要素中保留一个要素编码,保存于SCSCODEL字段中;对于不重复的L级四叉树编码,均保存于SCSCODEL字段中,因此具有L级四叉树编码的要素个数最多为4L。对于L-1级四叉树编码,过滤方法与L级类似,如果SCSCODEL字段中保存的L级编码中有重复的L-1级编码,则保留其中一个要素的L-1级编码,保存于相应要素的SCSCODEL-1字段中;对于不重复的L-1级四叉树编码,均保存于SCSCODEL-1字段中,因此具有L-1级四叉树编码的要素个数最多为4L-1。如2个要素的5级四叉树编码是“32412”和“32414”,进行第4级四叉树编码过滤时,这2个要素的四叉树编码重复,均为“3214”,过滤是选择其一即可。每一级四叉树编码过滤方法依次类推,直到最小一级。一般的,对于省级范围的数据,最小一级编码到第3级即可满足要求,不必过滤到第1级。

2. 要素分级显示过滤

基于过滤后的要素四叉树编码,可在ArcMap中设置分层显示效果。设四叉树编码过滤的最小一级为S级,则将图层在ArcMap中加载L-M+2次,如最小一级为3级,则加载图层L-1次。为每个图层设置相同的符号和标注样式;为前L-2个图层设置过滤条件,只显示对应级别四叉树编码过滤出的要素,即对应四叉树编码过滤字段中有值的要素,如 “Not SCSCODEL IS Null And SCSCODEL〈〉”。根据每个图层要素显示的疏密程度,为其设置合适的显示比例尺范围。在设置图层的显示最小比例尺时,要确保在该显示比例尺下当前图层要素较充分地分布于显示区域,同时要素符号和标注不重叠。图层的显示最大比例尺由下一级图层的显示最小比例尺决定。设置显示比例尺时要保证两个相邻显示比例尺间要连续且无重叠,如前一级图层的显示比例尺范围为1∶100 000~1∶500 000,则后一级图层的显示比例尺应从1∶99 999开始。若从1∶100 000开始,会造成在1∶100 000显示比例尺下两个图层同时显示,即要素会重复、重叠显示的问题。最小一级四叉树编码的图层可不设置显示最小比例尺,只设置显示最大比例尺,以保证在所有显示比例尺下均有要素显示。最后一个图层不设置过滤条件,而显示所有要素。此时即可实现从较小显示比例尺开始,随着显示比例尺的增大,逐渐显示更多的要素,但每个显示比例尺下要素符号和标注均不重叠、疏密有致、过渡自然。由于四叉树编码过滤自下而上进行,即在下一级过滤出的要素中继续过滤上一级的要素,从而保证了在较小显示比例尺下显示的要素在其后较大显示比例尺下均显示。

本文提出的方法在浙江省交换平台专题数据库中的专题数据生成地图瓦片时得到了充分应用。在浙江省交换平台中建有用于30多个省级厅局单位共建共享的专题数据库[6],该数据库中存在许多要素数目多、空间分布不均匀的专题图层,如邮政局的邮政营业网点、民政厅的避灾安置场所、通信管理局的移动营业网点、文化厅的网吧场所等图层。在为这些专题图层制作地图瓦片过程中均采用本文介绍的方法实现要素的分级显示过滤,达到了较好的要素过滤效果。图2—图4为邮政营业网点专题图层要素分级显示过滤后的效果。

图2 要素分级显示效果:全省范围

图3 要素分级显示效果:地市范围

图4 要素分级显示效果:区县范围

四、结束语

地图瓦片技术大大提高了WebGIS的速度和效率,但其传统的基于属性的分层过滤方法不能较好地解决要素数目多、分布不均的情况,本文提出的基于四叉树编码的要素分级显示过滤技术可较好地实现要素的分层分级显示,并在浙江省交换平台专题数据库的地图瓦片生成实际应用中验证了该方法的有效性。该方法对于点类型要素,可同时对图形符号和标注进行过滤;对于线或面类型要素,由于其单个要素空间分布不规则,不适合对图形符号进行过滤,但若其要素数目多,标注重叠,可利用本文方法只针对其标注进行分层显示过滤,也可实现较好的瓦片效果。在实际要素分层过滤过程中,可根据数据特征,在基于四叉树编码进行要素分级显示过滤基础上,可结合要素的类别、等级等属性过滤方法,实现能反映数据特征的分层显示效果。

参考文献:

[1] 马维峰,王晓蕊,高松峰,等.基于服务器动态缓存和Ajax技术的WebGIS开发[J].测绘科学,2008,33(5):204-205.

[2] 王强.分布式WebGIS地图缓存策略的应用研究[J].软件导刊,2008,7(5):16-18.

[3] 周沛. 智能交通系统中的瓦片地图技术研究与应用[D].上海: 同济大学,2008:7-49.

[4] 黄梦龙.瓦片地图技术在桌面端GIS中的应用[J]. 地理空间信息,2011,9(4):149-151.

[5] 李德仁,肖志峰,朱欣焰,等.空间信息多级网格的划分方法及编码研究[J].测绘学报,2006,35(1):52-70.

[6] 徐红波. 谈专题共享数据的整合与集成处理[J].浙江测绘,2012,111(2): 65-67.

猜你喜欢
四叉树瓦片字段
图书馆中文图书编目外包数据质量控制分析
打水漂
一种基于主题时空价值的服务器端瓦片缓存算法
惯性
基于WebGL的三维点云可视化研究
基于四叉树的高效梯度域图像融合
基于四叉树的高效梯度域图像融合
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
基于内容的图像检索(CBIR)中图像颜色特征提取方法的研究和改进