ArcGIS Server缓存及supertile和bundle探讨

1        ArcGIS Server缓存原理

ArcGIS Server的地图切片技术包含两种模式松散型(exploded)和紧凑型(compact),松散型缓存技术以切片文件的形式保存,每个切片对应相应缓存路径下的一个图片;而后一种形式将地图切片按bundle打包成一个文件,由于磁盘存储占用空间少,易拷贝,调用切片时网络流量少等优势已成为当前地图服务缓存的首选方式,本文就切图的范围进行一些探究。

首先要了解ArcGISServer的切图机制,在特定比例尺下,Server会先生成一个较大范围的supertile,抗锯齿状态下是2048*2048,反之是4096*4096,然后在对该范围内进行切片,例如采用的是抗锯齿,设置的切片大小为256*256像素,那么在一个supertile确定后会切成8*8个切片,生成的切片文件在紧凑模式下存在一个bundle文件里,一个bundle可以保存128*128个切片文件,无论是supertile还是bundle都是从切片原点起算。

也是说,同一个比例尺下,一个bundle下可以保存8*8个抗锯齿supertile,每个supertile可以里要切成8*8个切片;非抗锯齿下一个bundle保存16*16个supertile,每个supertile包含16*16个切片。

2        supertile和bundle

为方便理解supertile和bundle的概念,进行如下试验,以一个全国行政区划图为例

ArcGIS Server缓存及supertile和bundle探讨_第1张图片

1)首先生成地图切片方案,利用Generate Map Server Cache Tiling Scheme工具进行创建

ArcGIS Server缓存及supertile和bundle探讨_第2张图片ArcGIS Server缓存及supertile和bundle探讨_第3张图片


这里面设置的几个重要参数,要切片的工程文档、输出的XML格式切片方案、设计的比例尺等级、DPI参数(默认96)和切片大小(256*256)。

创建完成后可以打开创建的XML文档,查看详细的切片信息,里面包括了空间参考、起算原点、比例尺分级信息等。

ArcGIS Server缓存及supertile和bundle探讨_第4张图片


现在利用ArcGIS提供的Map Server Cache Tiling Scheme To Polygons工具来创建对应切图模式下的所有supertile。

ArcGIS Server缓存及supertile和bundle探讨_第5张图片


生成完的所有比例尺下的supertile如下

ArcGIS Server缓存及supertile和bundle探讨_第6张图片


在其属性表里可以看到包含了切片对应的比例尺,切片级别,行列号和面积等

ArcGIS Server缓存及supertile和bundle探讨_第7张图片


接下来我们要做的是将200w,100w,50w,25w,10w五个个比例尺下的supertile导出,并添加一个label和color的字段来标识

ArcGIS Server缓存及supertile和bundle探讨_第8张图片ArcGIS Server缓存及supertile和bundle探讨_第9张图片


利用字段计算器为color和label赋值,label的值要显示所在切片的行列号信息,color则是为了标识特定的切片给的颜色标记,默认赋0,特殊标识的单独赋值。




现在我们标注200w的supertile网格图层标记标识出第一行第三列的切片,效果如下

ArcGIS Server缓存及supertile和bundle探讨_第10张图片

按同样的方法对100w,50w,25w进行格网标注,四个标注效果如下
ArcGIS Server缓存及supertile和bundle探讨_第11张图片 ArcGIS Server缓存及supertile和bundle探讨_第12张图片
ArcGIS Server缓存及supertile和bundle探讨_第13张图片 ArcGIS Server缓存及supertile和bundle探讨_第14张图片

我们现在要寻找的是supertile和bundle的关系,以200w下行1列3切片查看100w,50w,25w,10W比例尺下对应的supertile。

ArcGIS Server缓存及supertile和bundle探讨_第15张图片ArcGIS Server缓存及supertile和bundle探讨_第16张图片

ArcGIS Server缓存及supertile和bundle探讨_第17张图片ArcGIS Server缓存及supertile和bundle探讨_第18张图片


200w比例尺下一个supertile包含2*2个100W比例尺的supertile,

100w下一个切片又包含2*2个50w的supertile,50w下一个supertile包含2*2个25w的supertile。

我们回顾一下,非抗锯齿下,一个supertile为16*16个tile,抗锯齿切片下一个supertile为8*8个tile,一个bundle为128*128个切片。

结合上述例子,非抗锯齿模式下,200w比例尺下的一个supertile包含(2*2)*(2*2)*(2*2)*(16*16)个25W的tile,即128*128个tile。

同理200w比例尺下一个supertile则包含(2*2)*(2*2)*(2*2)*(2*2)*(8*8)个10w比例尺下的tile,即128*128个切片。

总结,

非抗锯齿模式下,N级比例尺的一个supertile = 128 *128个N+3级比例尺的tile;

抗锯齿模式下,N级比例尺的一个supertile = 128*128个N+4级比例尺下的tile;

采用非抗锯齿切片,也就是说我们要生成15级的bundle网格的话,只需要用Map Server Cache Tiling Scheme To Polygons工具生成第12级的supertile网格即可。

采用抗锯齿切片,也就是说我们要生成15级的bundle网格的话,只需要用Map Server Cache Tiling Scheme To Polygons工具生成第11级的supertile网格即可。

3        基于要素创建缓存

由刚才试验得出了结论后,对我们基于要素创建缓存提供了有理的指导。通常情况下的切图策略是小比例尺按全图直接切,较小比例尺会按照某个要素范围来切(此时切图使用的是要素的包络矩形范围),而大比例尺下则是按包含网格的要素来切。

同时,要明确的一点概念是Server切图实现机制,在指定要素范围切图时,按顺序处理要素类中的所有feature,所有的服务实例会集体先处理一个feature范围,切出该范围内所有要求比例尺级别的缓存。在10.0开始不再以supertile为服务实例切图的工作单元,而采用bundle为处理单位,即一个实例负责一个bundle范围的切图,也就是说为了充分利用服务实例资源,一个feature范围最好包含N个bundle范围,N稍大于服务实例数,ArcGIS Server提供的Map Server Cache Tiling Scheme ToPolygons很好地解决了要素网格生成的问题。

在地图服务发布后通过MangeMap Server Cache Tiles手动管理切片,指定特定比例尺下的切图范围,可以选择按要素来切片,或者要素的包络矩形来切。


        

1、按网格要素来缓存


切图范围:

ArcGIS Server缓存及supertile和bundle探讨_第19张图片

2、按要素包络矩形来缓存

ArcGIS Server缓存及supertile和bundle探讨_第20张图片


切图范围:

ArcGIS Server缓存及supertile和bundle探讨_第21张图片

你可能感兴趣的:(arcgis)