好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

30 一种基于矢量数据的瓦片金字塔算法.doc

5页
  • 卖家[上传人]:gg****m
  • 文档编号:233889392
  • 上传时间:2022-01-03
  • 文档格式:DOC
  • 文档大小:155KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 30 一种基于矢量数据的瓦片金字塔算法—种基于矢量数据的瓦片金字塔算法李海亭武汉市勘测设计研究院工程师,博士摘要由于响应速度•度成为互联网电子地图的发展瓶颈,随着乩片地图技术的出现,地图的 拖动、缩放以及不同比例尺下的快速浏览都有了很人的改善近年來,许多互联网电子地 图供应商(包括Google、Baidu、Mapbar、灵图等)都使用了这一技术瓦片地图本质上 就是把人们通用的地图作为主要地图背景,并采用预先生成的方法存放在服务器端,然后 根据用户提交的不同请求,把相应的地图乩片发送给客户端的过程由于客户端请求的地 图是预先生成,不需像传统的WebGIS那样对用户的请求进行实时计算和绘图,所以瓦片 地图技术能够在地图的显示方血具有速度的优越性地图瓦片是如何生成的,如何根据用 户的请求范围实时地将相关瓦片反馈给用户,这需要建立一•个良好的索引机制本文根据 基于瓦片地图机制的武汉市公益地图网(vrwuhan)的实际开发应用,提出了一种基于矢 量数据的瓦片金字塔算法,并探讨了该算法引发的地图变形问题及其修正方法关键词:瓦片金字塔;网格索引;地图变形;步长修正1 HiJ H瓦片索引是当今网络电子地图发布的主要技术手段,它采用预生成思想将地图进行横向 分幅和纵向分级,然后根据用户请求动态检索相应的图块并自动完成拼接。

      对全球进行空 间划分的方法归纳起來主要佇以下两种:等间隔空间划分和等血积空间划分但在平血电 子地图的农达中,瓦片索引在木质上则是地图投影变换和空间索引的融合运用,该索引模 型的建立过程须根据其应用特点参考不同地图投影的变形规律因此,瓦片索引方法研究 同样也是适应新型地图产品而派生的新的研究领域,它是地图投影学研究的一个延伸木 文首先介绍基于矢量数据的地图瓦片金字塔概念,然后提出了 一种采用网格索引的瓦片金 字塔算法本文还在分析该算法在特定区域引发的地图变形问题的同时进一步探讨了如何 通过地图瓦片的长宽修正和经纬度步长修正两种方法解决变形问题2基于矢量数据的瓦片金字塔将指定范I制内由矢彊数据绘制并符号化的地图,进行纵向分级和横向分幅,根据不同的 比例尺等级,按照指定尺寸(如300X240等)和指定格式(如JPEG, PNG等)进行切割,得 到若干行和列的矩形图片库,这些矩形地图切片也称为地图瓦片(Map Die),这些若干 行和列的地图瓦片库呈现正金字塔形的数据结构将预先生成的金字塔式地图瓦片库放置 于服务器的虚拟日录中,服务器接收到客八端请求及验证后,根据客门端请求的地理范围 及比例尺的人小,将预先生成的地图瓦片返冋并显示在不同的客户端。

      3具体算法描述及步骤现以世界地图为例,阐述该瓦片金字塔的主要算法具体如下:3. 1地图瓦片的基木约定假设把世界地图按比例尺的人小分为16个等级,也就是说要在以后的地图切片小完成 16套地图瓦片的制作为了方便快捷的进行地图切片,同时考虑到要反映整个批界地图的 特征,拟采用WGS84人地坐标系作为地图瓦片库的坐标系统,即将需要切片的矢量数据全 部转换为WGS84的人地坐标系统WGS84人地坐标系以经度和纬度反映地球上任意一点的 具体位置,在相同等级的前提下,假定每张地图瓦片跨越的经纬度是相同的,并将地图 瓦片的经纬度步长分为16个等级根据实际计算的精度需要,拟采用非等比数列的步长 数组用 工作单位:武汉市勘测设计研究院,工程师Javascript语言描述如下://定义地图缩放的级别//定义地图瓦片跨越的经度步长数组//定义地图瓦片跨越的纬度步长数组3.2地图瓦片的存放约束由于地图瓦片是基于矢量数据生成的栅格图片,其木身并不具有空间位置信息但是每 一-张地图瓦片在特定的比例尺下跨越了固定的经纬度步长,所以很容易计算出该地图瓦片 的具体位置信息本文拟采用地图瓦片的文件名来标识其所在的地理位置需要指出的 是:由于地图瓦片的数量巨人,若用同一个文件夹來存放所有的地图瓦片,不仅会引起杠 片数据的管理混乱,而且对于存放地图瓦片的操作系统而言,每一个文件夹中文件的存放 数量受限,很难达到地图瓦片库的存放要求。

      由于不同比例尺级别的地图瓦片库相对独 立,故分别建立相应比例尺级别的文件夹用以存放该级别的地图札片,然后再根据网格索 引的具体算法对该级别的地图瓦片进一步分类存放3. 3瓦片金字塔算法地图瓦片的文件夹命名不是唯一的,为了方便计算的需要,拟釆用缩放级别的数值作为 每一套地图瓦片库文件夹的名称实验证明:如果简单地将每一级别的地图瓦片都存放在 同一•个文件夹下,那么除了会遇到管理混乱和存放受限的问题外,客户端对地图瓦片的访 问速度也会明显减慢因此需要建立一种索引机制來提高这种金字塔形海量地图瓦片库的 搜索速度因为每张地图瓦片的文件名都是其地理位置信息的标识,在地图瓦片的切割过 程中,假定以x_y的方式来命名,current_longitude, current_latitude分别表示当前 的经度和纬度,current_level表示肖前的缩放级别,用Javascript语言描述,那么最简 单的索引算法是:为避免上述瓦片管理混乱、存放受限及访问速度缓慢等问题,木文采川网格索引为海量 地图瓦片库提供位置搜索服务,即假定每-•个网格中包含若T•行和列的地图瓦片,然后根 据特定级别的瓦片数量,确定每一个网格具体的行和列的数值值。

      为了方便计算的需要, 采用方阵來描述每一个网格假设某一个级别方阵行数的值为M,根据该级别的地图乩片 数量设定M值因为随着比例尺的增人,瓦片文件的数量呈非线性剧增,根据实际的计算 结果,比例尺较小的M值设为10,比例尺较人的值设为50o用Javascript语言描述如 下://定义相应级别的网格方阵阶数数组这样,每一个级别的瓦片库文件夹下就可以存放若干个用于索引的引擎文件夹,即引擎 文件夹的名称将为地图乩片库提供位置索引服务上述瓦片文件名称x y分别代表地图乩 片相对于经纬度原点(0,0)和相应经纬度步长的寥点坐标值,分别用Origin x和Origin y 来描述对于某一级别的地图瓦片库,假设它的引擎文件夹名称为folder_x_folder_y, 用Javascript语言描述,则满足:假定应用网格索引后的地图瓦片名称仍然用x_y表示,用Javascript语言描述,则x 和y的具体数值可以通过如下计算获得(%表示取余计算):或者是:这样,在客户端浏览特定范I韦I的地图瓦片库或定位某一个具体的地理位置时,就可以根 据此引擎机制调用相应的地图乩片,并返冋给客户端并无缝拼接显示引擎机制调用的地 图瓦片如图1所示。

      地图瓦片无缝拼接的计算方法同样采用此索引原理由于地图瓦片的 索引计算是在客户端完成的,属于一种胖客户端的结构,这样便人人减轻了服务器的负 担,并很好地提升了地图请求的响应速度弓1擎机制调用的地图乩片3. 4瓦片的定位与拼接以定位某-个具体的地理位置來说明该引擎机制在地图瓦片库中 的具体应用根据上述设定,当前需要定位的地理坐标为(current」()昭itude, current, latitude),调用的地图瓦片文件路径为Tile_path,则满足:Tile_path =地图瓦片库文件夹 + currents level + folder_x_folder_y + + x_y+ .扩展名定位某一个具体的地理要素并使该要素在地图上完整居中显示,则根据其质心及整个要 素所跨越的地图瓦片计算获得4算法引发的地图变形问题及其修正方法在瓦片地图的发布过程中,所令的地图瓦片从形状來讲往往是全等的但地球是一个不 规则的椭球体,在同一个地点,跨越相同的经度和纬度,距离一般并不相等并且,在不 同的纬度带,跨越同样的经度差,距离也往往是不相等的因此,利用上述计算方法,只 有在同时满足上述两种条件的理想情况下,地图瓦片上所表不的地理要素与实际地物的长宽比才会一致。

      也就是说,假设地球是一个标准的球体,这种瓦片金字塔算法在赤道地区 附近相对來讲是适用的如何使该算法适用于世界范I韦I或某一特定的区域呢?木文尝试通 过地图瓦片修止和经纬度步长修止两种方法对上述算法进行改进,使其能够较真实的反映 某一区域而不产生人的变形4. 1乩片长宽修正瓦片长宽修正方法是指根据其特定在区域位置,在该区域范围内,通过计算同一经度和 纬度所跨越的实际距离来调整地图瓦片的长宽比例关系,以此來修正瓦片上所表示地理要 素的真实形状及要索间的相对位移以北京市为例,同样假设地球为一标准的球体(这样 假设的误差并不人),假设经纬度每变化一度跨越的实际地理距离为x_perlongitude. y per latitude,地球半径为radius Earth,北京市的经纬度坐标为BJ LONGITUDE, BJ LATITUDE则满足:北京市的纬度坐标人约为北纬39. 92度,因此,每块地图瓦片的长宽比为cos(39. 92° ) = 0.767为了计算方便的需要,将瓦片的长宽比调整为4: 5在实际计算中,设定每块 瓦片人小为240像索X300像索,并同北京1954坐标系下公里格网的北京市地图相比较, 没有发生人的变形,基本满足公众需要。

      4. 2经纬度步长修正经纬度步长修正方法是指地图瓦片保持正方形特征,而修正每块瓦片跨越的经度或纬度 步长以纬度步长修正为例,根据上述计算,每一块瓦片的人小设定为300像素X300像 素,调整每块瓦片跨越的纬度和经度的比值为4: 5O即将上述地图瓦片跨越的纬度步长数 组修改为:经过上述方法进行修正,可以基木解决瓦片地图技术在特定区域范I韦I内引发的地图变形 问题对于世界范囤内的地图乩片表达,可以通过对经纬度实行分带,然后再通过步长修 正的方法來尽量减小地图变形分带的数值越人,引发的地图变形将越小5结语本文采用网格索引为矢量地图的瓦片金字塔图库提供引擎服务,该引擎算法可以快速实 现客户端地图瓦片的调川及无缝拼接显示,人人提升地图的响应速度;另外,木文还探讨 了瓦片金字塔算法引发的地图变形问题,并提出了两种修正方法:即在特定的区域范围 内,根据计算同一经度和纬度所跨越的实际距离,对地图瓦片自身的长宽比例关系进行修 正;或者对地图瓦片跨越的经纬度步长进行修正。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.