最近在帮客户做切片的时候,遇到不少问题,我相信大家将来也可能会遇到,所以在这里做个简要的总结。
地图切片的原理我相信大家都并不陌生,但是在实际使用的过程中,经常会遇到切片速度慢、效率低下等问题。前段时间帮助用户做切片的时候,也遇到了同样的问题,所以这里主要记述的内容是可能会对切片速度有影响的一些设置。
1、Maplex高级注记。使用Maplex高级注记功能编辑的地图文档,可能会导致切图效率的低下。判断是否是Maplex导致的切图速度慢,最简单的方法就是关闭Maplex引擎之后,进行切图,并将单位时间内生成切片文件的大小与原来做一个比对,如果速度相差悬殊,那么可以尝试将地图文档中除当前切图比例尺之外的其他图层先删除掉,再分级进行切图。
2、发布文件的格式。很多时候我们做切图,都是在服务器上进行的,引用ESRI售后技术工程师的说法,在多核服务器上通过mxd发布的服务可能会存在异常,esri承认是bug,推荐使用基于msd的地图服务。所以在服务器上做切片,一定要将地图文档保存为msd格式发布,再进行切图。
3、最大实例数的设置。一般来说,我们都会讲切图服务的实例数设置为CPU核心数+1,因为有一个SOC进程是专门用来做回收的,并不参与实际工作,所以这样设置可以发挥出切片服务器的最大性能。但是我们在实际的操作过程中,发现这种方式在某些型号的服务器上会导致SOC进程创建后又不断回收,最终只有一个进程在切图的情况。这时我们就只能通过不断尝试设置不同的实例数,从而找到一个合适的值。
4、切图方式。我么都知道,进行切图有两种方式,一种是直接在地图服务属性中执行更新切片,或者通过ArcToolbox工具中提供的服务器工具进行切图。原理上来说,这两种方式都是调用的同一个GP过程,没有什么区别,但是在实际使用中,我们通过服务属性更新切片时常常会遇到ArcMap程序异常关闭的情况,所以还是推荐使用工具进行切图。
5、紧凑&松散。ArcGIS10中推出了一种新的缓存格式,将原来独立的缓存图片,保存成bundle格式二进制文件,每个bundle文件存储128*128个缓存图片。相比成千上万的tile文件,这样做的好处是易于缓存管理,减少磁盘空间占用,提高缓存读取效率等等。所以我们在切图过程中也应使用紧凑格式来创建切片。
6、图片格式。不同的图片格式,直接影响缓存文件的大小,一般来说,系统默认是采用PNG32来保存tile文件的,但如果我们想缩小一些占用空间,可以考虑使用JPG或PNG8、PNG24等格式。使用JPG虽然压缩比是最大的,但是创建出来的切片文件噪点严重,所以不推荐使用。通过多次尝试,PNG8格式不仅可以大大压缩缓存文件的大小(大概是PNG32格式的60%),而且切片的效果相差也不大,所以是PNG32格式很好的替代选择。
综上,实际环境中可能会影响切片的原因还有很多,不过最重要的方法还是不断尝试,从而找到最高效的切图方法。