基于瓦片的矢量图幅的分割与合并

3星(超过75%的资源)
所需积分/C币:48 2013-05-01 12:13:45 271KB PDF
156
收藏 收藏
举报

基于瓦片的矢量图幅的分割与合并 地理信息系统中,对于服务器端和客户端交互比较多的情况,反复的传输栅格图像有时并不是一个好的选择。为适应这种情况,此文提出了一种基于瓦片分割的矢量数据的合并机制,采用分片传输矢量数据的方法,加之ajax 异步请求的功能,减少了客户端用户的等待时间,提高了用户的体验,并在特定的开源GIS 环境下做了实验。实验结果表明,对于地图层级越细的地图服务,实验的性能越理想,每次漫游操作的重新请求的数据量最坏情况下约是可显区域的1/3 左右,世界级地图服务操作间的平均显示时间间隔平均为3.2 秒,随着层级的细化,间隔会变长。 地理信息系统;瓦片;矢量数据;图幅裁剪;图幅合并
国武技论文在线 的强大的应用功能和用户感受 矢量图形的裁剪 矢量图形的裁剪和一般可视佟形的裁剪有所不同,矢量图形是通过矢量数据来表达的, 因此矢量图形的裁剪本质上是对矢量数据的分割描述一个地理实体的矢量数据不仅包含它 的坐标信息,还带有实体的属性信息,因而在裁剪过程中要考虑属性信息的继承关系。矢量 图形的信息是按照分图层、分类型(点、线、面)的形式存储的,个图层上只存在种类 型的数据,因此对于地理实体点、线、面的裁剪,具体到单个图层上就是对点、线、面坐 标信息的分割处理。 基于瓦片的图幅栽剪,裁剪窗口我们定义为规则的正方形抑或是长方形。首先我们从代 表一个图层的矢量文什中读出这个图层的外接矩形坐标,根据这个外接矩形坐标和瓦片的规 定人小,求出应当分割成的瓦片数和每个瓦片的边界巫标,并: 对每一个瓦片赋予唯一的 新建对应于每个瓦片的矢量文件,写入和边界坐标 点的裁剪 对于点对象裁剪比较的简单,只需要判断此对象是否在裁剪的瓦片窗口内,如果在 把坐标信息连带属性信息一块写入此瓦片的对应矢量文件中。 线的裁剪 A C D H I 图线对象的裁剪 对于线对象,如上图 若是线的起始氐在裁剪瓦片的窗口内(或者起始点在裁剪窗口上,而第二个点在裁剪窗 口内),则判断下一个点是否在瓦片内,重复执行。一种情况下,此后的所有点都在裁剪窗 口内,则此线在裁剪窗口内;另一种情况下(例如线 ),此后的某点在窗口外,求 出它与前一点组成的线段和瓦片边界的交点(譬如点),将此交点以前的点对象并包括此 点写入裁剪瓦片对应的文件中,原文件中此线的起始点变为这个交点,跳入步骤)。 若是线的起始点在裁剪瓦片的窗口外(或者起始点在裁剪窗口上,而第二个点在裁剪窗 外),则寻找线的入∏点(譬如点和点、),没有,则此线与分割瓦片没有交集; 否则,一种情况下(例如线 ),用得到的第一个入口点将原文件中的线分成两条 线,都继承生成自己的属性文件,第一条线(追加入口点作为最后一个点:)保留,后 一条线(将入口点作为余下点的起始点: )的处理按照)中的步骤进行;另一 种情况(例如线 ),则原文件中的线被分成三条带有相同属性信息的线,第一条 国武技论文在线 线(追加入∏点作为最后个点:)保留在原文件中,将第二条线(从入∏点到跑出 点的线段:)写入裁剪瓦片中,第三条线(将跑出点作为余下点的起始点 调执行)的步骤。 上面的过程中,当一条线被瓦片切割的时侯,会产生许多原文件中没有的点(例如 ),这些点在最终客户端显示的时候并不影响显示效果,相反它们在后面 的瓦片的合并中还起到连接的作用,因而可以将它们以瓦片的四个边界为分类单独存进瓦片 文件中。 面的裁剪 2 E D 图面对象的裁剪 图面对象的裁剪 图面对象的裁剪 对于面对象: 如果被裁剪面的第一个点坐标在裁剪窗口内,并且后血的点都在裁剪瓦片内,那么被裁 减的面实体在此瓦片内,将全部的信息写到对应的瓦片文件中即可。譬如图,如果第一个 点(点)在裁剪窗∏内,而后面的某个点(点)跳出了窗∏,那么求出准确的跑岀点(例 如点),记录下此点,为。然后对跳出点后面的点继续判断,直到碰到那个进入裁剪 窗口的点(譬如),紧接着求出入点(例如点),记为,若是在同一条边界上进入 裁剪窗口,那么将写到后面,将和分别作为截掉的面域(面 )的首 坐标和尾座标继续存于原文件中,程序带着点跳转到):若是点从另一条边界进入 裁剪窗口,如图,那么裁剪剩余面实体除了加上:和点外,还需在两者之间插入瓦片 的一个或几个顶点作为面实体的点,这样被瓦片截下来的面域也需要加上这几个顶点,再带 着点跳转到 如果被裁剪面的第一个点坐标在裁剪窗口外(如图),寻找第一个入点(例如点), 找到后将其作为起点,执行)中的步骤,在执行)的过程中。对」最后一个跑出点(例 如),我们需要记录下此点,将此点和第个入∏点连接到起作为新的面域(例如 ),写到瓦片文件中,属性信息继承得到,而将最后一个跑出点和第 个入口点分别作为截掉面域的起始和结尾点保留到原文件中(例如面 这个过程中与瓦片相交的面域的点都要按瓦片的边存进瓦片文什中,以便于以后的瓦片 的合)。 矢量图形的合并 当用户的请求到达服务器,地图服务器将地图数据切割成不同的瓦片,然后将请求范围 内及其附近的瓦片传回到客户端的浏览器中。在客户端,地图瓦片被合并呈现给用户可视的 地图服务,这一过程中要尽量保证客户端呈现的地图实体和数据库端的逻辑一致性。为了降 国武技论文在线 低网上数据的传输量和客户的等待吋间,我们采用基于瓦片的机制,当然这也需要与之对应 的瓦片合并和缓存机制,文献中对于瓦片合并的必要性和策略提供了一定的参照,但是不 同的是,本文提出的地图合并策略是紧紧依附于图幅的分割的,因此效率上要更乐观一些 点的合并 点的合并是比较简单的,需要做的就是将在显示窗口内的各个瓦片的对应矢量文件中的 坐标信息和属性信息复制到一个主题层中,甚至都不需要考虑同一层中各个点的文件顺序。 线的合并 线的合并是基于瓦片的唯一和 的。首先将需要显示的瓦片在客户端汇聚, 然后根据各个瓦片的位置和边界关系,将各个瓦片中具有相同 的线合并到同一个 文件中。合并过程中注意区分下面(图)两种情况: 34 p 5 ∧ A N 图线对象的合并 图线对象的合并 种情况是,譬如图中线 被分割后分成 两条线,具有相 同的 ,并位于相邻的两个瓦片中,合并时因为有公共点的存在,所以合并后成 为一条线 另一种情况下,譬如图中线 ,被分割成和等多条线,并位于 多个瓦片中,当合并时,虽然和有相同的 ,当时由于没有公共点,合 并后作为一条线 (图)。 面的合并 面的合并也是基于瓦片的和 的,合并的过程和线的合并步骤基本上一致, 只是在合并的过程中需要考虑的情况更为复杂一些。相邻瓦片的面实体的合并,首先要确定 出两个瓦片的位置关系,一个瓦片的四周有八个方向,可是具有边相邻关系的瓦片只可能出 现在上、下、左、右四个方位上。我们拿左右相邻为例。一旦确定出两个需要合并的瓦片是 左右相邻,那么合并的焦点航放在了左边瓦片的右边界和右边瓦片的左边界 M M MM 4 P 图面对象的合并 图面对象的合并 国武技论文在线 图面对象的合并 如上图,合并时考虑左面瓦片的右边界和右面瓦片的左边界是否存在公共点:若存在两 个公共点,如图,在切割过程中,被切成 和 两个面对象,合并 时只需判断两个面实体的公共点起始关系即可,因为右面瓦片的起点是左面瓦片的终点,可 合并为 ,当然这种情况下,也可合并为: ;若存在一 个公共点,譬如图,因为右面瓦片的起点是左面瓦片的终点,所以合并为: 若没有公共点的存在,如图,左边瓦片的面实体为 ,右血的为 以合并为: 。实际上图和图所小也是图的两种特殊情况,只是有的 公共点是瓦片的顶点,需要特殊处理一卜,因而区分廾来。 客户端地图文档结构 瓦片在服务器端切割好,而在客户端进行合并,这还需要一个中间介质完成两者的联系 这里引进了一种地图文档结构,来配合地图合并的完成。此地图文档有个双层结构(如图 ),第一层是准备层,有的瓦片网格组成,它负责从客户端的浏览器或者服务器抽取 瓦片,以使提供给显示层使用,这一层对」用户来说是不可视的,起到了一种缓冲的作用。 第二层是显示层,有的瓦片合并而成。它从准备层抽取出在显示范围内的瓦片,在这 层进行合并,形成可视的地图展现给用户。譬如图,当用户执行了漫游操作时,准备层 中拖动后将在视域范围内的瓦片会被提取到显示层,在显示层进行合并后,显示给用户;同 时,准备层会为用户的下一次操作而向浏览器缓存或者服务器发出请求,预取可能用到的瓦 片存入准备层中,多余的瓦片也会被丢弃掉 4 3 量示层的机片 2 准富层要欲褽时夏 祚备层要保图的不 可视片 挺交 图地佟文档结构 图漫游中地图文档的变化 客户端和服务器的交互 的出现是 的块里程碑,它通过提交异步的 ,提高了客 户端的用户体验,有效地减少了网络的传输量,从而创造·种类似桌面程序的应用 国武技论文在线 技术在栅格图形的基于瓦片的传输上的成功应用,也给矢量图形的传输带来了曙光,本文也 采用技术来实现矢量数据的网络传输。技术不同于传统传输模式的关键在于,它 在客户端引入了引擎,此引擎可以处理部分客户端的请求,从而减轻服务器端的压力, 并且此引擎向服务器发送异步请求 Browser UI Ajax Enginc L Server In Map T t P put Ime Client Se 图客户端和服务器间的交互 试验测试 对于矢量数据的渐进传输,一般的做法是通过测试传输一定量的数据的时间来评价系统 的性能,譬如。但是这种性能测试方法对」基」瓦片的矢量传输是不合适的,因为瓦片的 意义就在于为了响应用户的实际操作行为,将大块的数据分割戊小块,以便提取用户需求的 那些数据块。所以,为了更面向用户,这里设计一个更合适的方法,就是测试每次用户拖动 操作的发生和地图展示出来的时间和。在测试过程中,测试了最坏情况下的用时:用户不停 地向单一方向拖动,这样客户端每次都需要从服务器端请求新的数据 测试实验中,服务器端使用的是 的 内存为 式机,利用开源的 构建的服务器:客户端使用的是 内存为 的联想笔记本,使用 搭建的客户端 界面。 表两种层级的地图得到的实验数据 实际数据 客户需要数据 用户使用 地理特征分片前分片后实所有瓦片分片后实请求瓦片包含的数据率 体数 体数 内 体数 世界级线 面 总和 占 县级 线 面 总和 从上面表的数据来分析,对于具体的地图,试验的性能和地图上地理特征的分布有一定 关系,然而总体来说,地图显示比例越大,数据量葳大,分片所体现出来的效率越好。 国武技论文在线 表实验性能 第一次显示地图新方漫游鼠标操作时间漫游平均显示时间 法普通方法 世界级 县级 表是使用瓦片的方法和未使用瓦片方法两种情况下的试验数据,像预料中的一样,从 第一次请求发出到把地图显示给用户是花费时间最长的,而使用瓦片的方法会缩短这一过程 中用户的等待时间。当地图一旦展示给客户后,客户的每次漫游操作使用的时间实际上是很 小的,这也和用户请求的数据量有关。 结论 文中提出的方法虽然能够改善用户的客户端体验,克服矢量数据下载的等待时间,但是 也还存在一些问题,在将来的工作中还需要改善。首先,在对线和面这两种矢量数据的切割 过程中会产生一些附加的点信息,而在合并过程中并没有将它们去除,这些信息是原地理数 据中没有的,它们的产生主要是因为它们既有利」矢量数据的合并又不影响地图的客户端展 其次,如果廾发一个专门的数据库用来直接存储实现切割好的瓦片,而不是每次都响应 请求实时切割,那么方法的性能会提升很多 参考文献 高波,郭朝珍,丁善镜.基于GiM.矢量图层分割的空间数据分布式协同处理的研究[].计算机应用, 2009,29(1):297~-303 唐棣,单会秋.基于直线斜率的凸多边形线裁剪算法[].计算机应用与软件,2005,22(8):115~117

...展开详情
试读 8P 基于瓦片的矢量图幅的分割与合并
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
qq_34980325 适合初学入门者
2018-03-07
回复
u010243690 不错很好,值得学习。
2016-09-21
回复
htlxkj 适合初学入门者,简要介绍了相关技术
2013-12-04
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
基于瓦片的矢量图幅的分割与合并 48积分/C币 立即下载
1/8
基于瓦片的矢量图幅的分割与合并第1页
基于瓦片的矢量图幅的分割与合并第2页

试读结束, 可继续读1页

48积分/C币 立即下载