ArcGIS Server10.0切图全解及技巧
本文是我对自己图片缓存过程中问题总结后所写。对ArcGIS Server图片缓存全过程进行了全面的说明和讲解。
准备知识
- 01
ArcGIS Server 10.0可以被安装在32位操作系统的机器上,但10.0之后的版本只支持64位操作系统。(Desktop不受此限制)
- 02
ArcGIS不同版本的产品一般不能共存(Desktop、SDE、Server)。若机器上有ArcGIS系列其他产品,若版本不同,安装Server时会报错版本冲突。
- 03
使用ArcGIS Server图片缓存可以选择图片缓存模板(主要是各级比例尺设置)或者自定义各级比例尺
- 04
若图片缓存服务器为单机,请务必配置多个ARCSOC实例,消耗时间会明显降低
- 05
若MXD文件中对象比较多,请以MSD为地图发布文档,有时会大幅度提高切片效率。
地图发布
- 01
地图发布可以在ArcMap、ArcCatlaog以及ArcGIS Server三种工具中进行。本例用在ARCCatalog中进行发布并图片缓存来说明。
- 02
在发布具体服务前,我们需要先建立管理服务。打开ArcCatalog,点击 Add ArcGIS Server。
- 03
选择Manage GIS Services
- 04
填写Server URL和主机名称。这里我使用的是本机,所以填入了localhost。 点击完成,就建立了localhost的服务管理。
- 05
右键要发布的MXD文档(或MSD文档),点击Publish to ArcGIS Server
- 06
选择Server服务器,我这里并未联机,所以选择localhost本机。然后自定义一个服务名称。Next>
- 07
选择需要发布的服务,我们仅仅用来图片缓存,所以只需要选择Mapping就足够。然后点击完成实现发布。 这时候在我们管理服务下已经发布了相关服务。 注意,这时候我们的服务默认是使用动态渲染机制的,而且发布的服务默认已经启动。
图片缓存设置
- 01
ArcGIS图片缓存其实就是使用ArcGIS切片缓存的机制,在开始缓存图片前有若干属性需要设置。
- 02
右键点击相关地图服务,选择Service Properties打开设置窗口。但要注意,这时因为服务正在运行,我们是无法编辑的。
- 03
右键先停止服务,然后按照第一步打开设置窗口。
- 04
General页签下设置是否在ArcGIS Server重启时自动重启该服务,默认是勾选的,一般不用设置。
- 05
Parameters页签下有两处需要注意(见下图红框)。 (1) Data Frame 两个选项:Active Data Frame和Layers 前者是当前地图文档的活动范围,后者是当前地图文档中所有图层的范围。 要注意这两个选项对于图片缓存是有影响的。 区别在于,Active Data Frame是我们保存的MXD的当前活动范围。在后面我们会指定图片缓存范围。但若我们指定的图片缓存范围比Active Data Frame范围更大,实际上是以Active Data Frame为范围进行图片缓存的。 Layers表示使用所有图层中最大外接矩形作为范围。 所以当我们的MXD当前活动范围<要素类的最大范围时,图片缓存结果是不同的。这点可以从图片缓存文件大小上看出来。 一般而言,我们在保存MXD时,应尽量将地图缩小在最小范围上。 (2) Sever Cache Directory 顾名思义,缓存目录的位置。请保证我们的相应盘符上有足够空间。
- 06
Pooling页签设置实例个数 。 池化和非池化对于我们图片缓存没有影响。该页签主要设置实例数。 这里的实例是指我们开始图片缓存后最多和最少会有多少个ARCSOC实例被用于进行图片缓存。 按照官方文档中介绍,如果要完全利用服务器资源。我们设置的实例数最大不能超过CPU个数*3。最小可以设置为CPU个数+1。 但这是通用做法,并非完全绝对。可以在正式图片缓存前做相关测试,看CPU占用情况而定。 最下面Timeout这里,大家不需担心,也完全不用担心在图片缓存过程中实例会超时。因为ArcGIS Server内部在运行图片缓存功能时已经将超时时间进行了调整,这里不进行任何设置也不会存在超时导致图片缓存中断的风险。
- 07
进入图片缓存最重要的设置Caching。需要将服务重新启动。默认是动态地图服务。我们要选择使用切片作为缓存。
切片设置
- 01
设置比例尺 ·使用模板比例尺 模板有三种形式: 1 从ArcGIS Online上获取Bing Maps和Google Maps的方案 2 使用一个当前存在的地图服务的比例尺方案 3 选择配置文件中的方案
- 02
设置比例尺·自定义比例尺 输入相应比例尺,点击添加按钮
- 03
设置切片存储方式 Exploded 松散格式,简单理解就是所有切片以很小的图片形式存储,因为是小文件很多,实际磁盘空间占用很大。切片数据迁移不太容易。 Compact 紧密格式,可以理解为一种压缩格式。图片存储在.Bundle文件中。数据迁移比较容易。
- 04
设置切片尺寸 最上方是设置图片缓存原点位置,一般就默认了。 图片格式设置 PNG格式是具有透明效果的,所以切片叠加不会有问题。 据网上GIS行业同仁讲,PNG8在切片上可能存在麻点,使用PNG32后该问题解决。这个本人未验证过。 图片大小设置 256*256 128*128 随个人选择 最后平滑线和标签边缘,这个毫无疑问肯定是要选择的。图片缓存出来的效果和不选此项千差万别。
- 05
其他设置 Advanced Options 设置缓存文件的存放方式
- 06
以下两项都是在使用ArcGIS Server服务进行二次开发才会用到。 Create tiles on demand按需图片缓存 是指我们只对部分地图先进行图片缓存,当用户请求传入Server后在进行其他部分的图片缓存 Allow clients to cache tiles locally 允许客户端本地缓存切片文件 是指客户端请求Server时会讲切片缓存到本地,下次请求同样范围地图时就不用从服务器下载。这样的好处当然是响应很快,但坏处就是如果服务器切片调整后,客户端本地缓存的切片没有清除的话,就不会读取调整后的切片。
创建切片
- 01
点击Create Tiles
- 02
地图范围已默认从MXD中读取过来,比例尺显示我们刚刚自定义的比例尺。
- 03
修改Map Server实例数 不能大于上面设置的最大数,不能小于上面设置的最小数
- 04
设置按照指定要素范围图片缓存 我们可以选择一个要素,ArcGIS Server可以只对当前要素范围内进行图片缓存。这个功能主要用于我们局部要素更新后,进行局部地图重切。
- 05
点击确定,等到图片缓存完成就好。
相关技巧
- 01
设置Map Server实例数(直观上也就是任务管理器中ARCSOC.EXE的进程数)时最好不要设置完全饱和。 例如:4核CPU,按照官方通用设置最大应该到4*3=12个实例。但在图片缓存时不应设置完全饱和状态。这里设置为10个为宜。总之,保持CPU在80%~90%的工作状态为合理。
- 02
若我们图片缓存的机器性能有限,但又着急出效果。可以在Create Tiles中选择比例尺时,先选择7级以下能很快切出来的部分。 但要注意,我们需要在配置的时候把所有级别全部配上。只在Create Tiles时选择其中的部分就可以。
- 03
中文字体在XP、Window7这种个人版系统上与Window2008这种网络操作系统上的渲染效果还是有差别。但从ArcGIS Server10.0开始,若选择了线条平滑和标签边缘平滑,两者在效果上几乎没有差别了。