网站大量收购闲置独家精品文档,联系QQ:2885784924

《ArcGIS+Server+动态生成缓存及地图切片技术.》.pdf

《ArcGIS+Server+动态生成缓存及地图切片技术.》.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《ArcGIS+Server+动态生成缓存及地图切片技术.》.pdf

ArcGIS Server 动态生成缓存及地图切片技术 引于“地下室的流星雨”,由dongfengyee (东风雨)整理 使用ArcGIS Server做地图发布,为了提升浏览性能,通常会使用现时比较 流行的地图缓存技术(通俗的说法为“瓦片技术”)。如目前的MapABC和 GoogleMap正是使用该技术。 所谓的地图缓存技术,就是按照一定的数学规则,把地图切成一定规格的图 片保存到计算机硬盘里,当用户通过客户端浏览器访问地图服务时,服务器直接 返回当前地图坐标区域所对应的“瓦片”,从而达到降低服务器负担,提升地图 浏览速度的效果。 地图缓存技术一般针对相对稳定的数据,因为地图切为瓦片以后,以图片的 形式存在,对于数据的变化(这里指的是数据的几何形状变化)不能及时的反应, 这就是地 图缓存技术不足之处。要想地图的变化得到及时的反映,那就必须重 建地图缓存。而重建地图缓存要视地图的区域范围和缓存的比例尺而定,时间为 几分钟到几十个 小时不等。因此,缓存的管理是一件相对麻烦的事情。 对实时性要求比较高的系统来说,一般不建议使用地图缓存技术。但地图缓存带 来的性能的体验非常 良好,因此可以在此基础上进行一些改动,使其适应地图 的更新操作十分必要。某些WebGIS系统由于涉及数据的编辑,数据更新频率较 大,不适用缓存的方式 发布,数据的实时性非常好,但地图的浏览和刷新性能 非常差(刷新性能与数据的大小和图层的渲染复杂度有关),大量占用服务器资 源,多用户连接的时候导致服 务器不稳定等。 经过反复的试验,针对上述的需求,懒羊羊提出了以下的一种方案,以解决 数据频繁变动和地图性能低下的问题。方案的基本思路:使用地 图缓存技术对 地图进行切片;编辑数据的时候获取空间数据对应的瓦片(一张或者几张);计 算这部分瓦片的地图范围,并在后台重新生成这个范围的地图图片;把 新生成 的图片替换这些旧有的瓦片。 具体的做法如下: 1. 创建一个非池化的服务,并生成地图缓存。 2. 获取编辑的 图形所对应的瓦片。一般来说,如果是点图形,对应的是一张瓦片, 线、面图形一个图形有可能落在多张瓦片上面。可以使用 ESRI.ArcGIS.ADF.ArcGISServer.TileCacheInfo来获取瓦片的相关信息,但具 体落在那一张瓦片,那就必须了解地图 切片原理。 1)ArcGIS Server 切片原理与命名规则 设定一个原点作为地图切片的起始点 (默认是(400,-400),这是个经纬度坐标,设这个值可以把其他地区的数据 连接进来,使不同服务的数据可以得到有 效的拼接,有兴趣的同事可以研究一 下),以一定的规格(长宽为2的n 次方的像素)把地图切割成若干的小图片, 并以科学命名的方式存贮到计算机磁盘。命名的 规则是各比例尺的图片放在名 为LXX的文件夹里面,第一个比例尺的文件夹名为L00,第二个比例尺的问L01, 如此类推。比例尺文件夹(一下统称L文件 夹)目录下还会有R开头的文件夹, R表示的ROW,当前比例尺的瓦片每一行对应一个文件夹。R文件夹的命名方式 是瓦片的行序列(用rIndex表示),把 rIndex转为8位16进制,不足的在左 边补0,用代码公式表示FolderName = R+rIndex.ToString(x).PadLeft(8, 0) 。R文件夹里面保存的就是瓦片,瓦片的命名方式跟R文件夹的命名方式 相似,以字母C开头,后面是瓦片在该行的列序号(用cIndex)表示,后面依 然是一 个8位16进制 FileName = C+rIndex.ToString(x).PadLeft(8, 0)+ .+format.ToString() 2)计算图形对应的瓦片(以点为例) 下面以加入一个点要素为例,说明如何去获取这个点对应的瓦片 首先获取地图服务的相关信息,其中NotPooledServiceUrl是字符串,对应当前 服务的URL,地图服务已切片 //获取服务的相关信息 ESRI.ArcGIS.ADF.ArcGISServer.MapServerProxy mapserver_dcom = new ESRI.ArcGIS.ADF.ArcGISServer.MapServerProxy(NotPooledServiceUrl); ESRI.ArcGIS.ADF.ArcGISServer.MapServerInfo mapi = mapserver_dco

文档评论(0)

hsti + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档