在ArcGIS Server10.0中按照Compact存储格式切图后,将所有切片拷贝到对外发布的服务器(机器1)上,当局部区域的数据更新时,将地图文档及数据拷贝到另外的机器上(机器2)单独进行更新,更新时会出现某个bundle内部分区域出现空白的现象,使用该bundle再去替换机器1上对应的bundle后,将导致地图的对应部分出现空白。
1 解决方案
原因
ArcGIS
Server创建缓存时是将bundle作为处理单位,但是按照要素类(以下图中红色范围区域为例)更新切片时, ArcGIS
Server是按照要素类所跨越的supertile(如下图所示,红色区域跨越了周围四个紫色的矩形)进行更新,但是要素类所在bundle(高亮显示的蓝色矩形)内其他的地方不会被创建缓存,所以该bundle是新创建的话,剩余区域将会是空白。
http://s10/mw690/ba3ace5fgd852292de669&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
解决方案
1)
如果更新区域只有一个的话,可以直接在Manager Map Server Cache Tiles中的Updata
Extent中选择更新的区域,见下图所示,而http://s6/mw690/ba3ace5fgd8522a2f0d45&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />处应为空,不要选择任何要素类,此时,点击OK创建缓存,将按照bundle范围进行创建与更新,此时不会出现空白区域。问题可得到解决,第二章节实现步骤可省略阅读了。
http://s6/mw690/ba3ace5fgd8522b400655&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
2)但是如果更新区域是星星点点的分布在地图各个角落,使用1)中所示方法,就不太合适了,因为Updata
Extent的外包矩形可能跨越了多个不需要更新的bundle,此时,为了提高效率,建议使用按照要素类更新的方式进行缓存制作。使用该方式时,我们需将相应切图比例尺下,要素类的范围更新为数据发生变化区域所在的bundle范围,这样就能保证更新后的bundle出现空白区域的情况。具体的实现方式即第二章节所示。
注:1)有关supertile与boudle的概念请参考
“ArcGIS Server 10中的切图/缓存机制深入”,地址见http://blog.newnaw.com/?p=789。
2)不管采取何种更新方式,一定要保证与原有的缓存制作相同的切片方案。
2 实现步骤
“地图服务器缓存切片方案转换为面”工具使用与现有地图服务缓存切片方案相同的比例对数据框范围进行细分,并在较大区域上创建
“supertile(超级切片)”。该工具可通过点击ArcToolbox中“制图工具->注记->地图服务器缓存切片方案转换为面”打开。如下图所示。
http://s1/mw690/ba3ace5fgd8522c9dda10&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
打开对话框后,根据提示,输入相关的信息,即生成各个级别下对应supertile网格,如下图所示。
http://s12/mw690/ba3ace5fgd8522d9ead8b&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
2.2 获取对应的boudle范围
根据supertile与bundle的关系,N级下的supertile范围对应N+3级下的bundle范围(具体详情可参考“ArcGIS
Server
10中的切图/缓存机制深入”,地址见:http://blog.newnaw.com/?p=789)。由此假设我们要生成第7级的bundle
网格,只需要用Map
Server Cache Tiling Scheme To
Polygons工具生成第4级supertile的网格即可,如下图所示,高亮蓝色显示部分即为第四级的boudle网格,灰色的小网格为第七级下的supertile网格。
http://s2/mw690/ba3ace5fgd8522f6c1e11&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
找到第7级相应的bundle后,选择该矩形,将其导出作为更新时的要素类。如下图所示。
http://s8/mw690/ba3ace5fgd852306f94e7&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
http://s10/mw690/ba3ace5fgd8523199a299&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
2.3 瓦片更新
根据生成的bundle作为要素类,创建相应比例尺下更新区域的瓦片。
http://s2/mw690/ba3ace5fgd8523284ded1&690Server10.0地图缓存局部更新方法小探" TITLE="ArcGIS Server10.0地图缓存局部更新方法小探" />
加载中,请稍候......