创建快速绘制影像服务的最佳方式就是对其进行缓存。 对影像服务进行缓存时,ArcGIS Server 站点会以您定义和保存的经预处理(缓存)图像的一组比例级别和像素大小来绘制影像。 当 ArcGIS Server 站点收到对图像的请求时,它可以在比重新绘制原始图像所需的时间更短的时间内返回缓存的图像。
缓存适用于不经常更改的影像服务。 如果进行更改,还提供了用于更新缓存的工具。
构建缓存之前,您需要执行一些设计和创作工作,从而创建有效的影像服务缓存。 可根据镶嵌数据集、栅格数据集或者引用了栅格数据集或镶嵌数据集的图层文件创建影像服务。
以下部分汇总了规划和创作影像服务、发布缓存影像服务以及对其进行测试的过程。
在开始之前
如果您要从镶嵌数据集或镶嵌数据集图层发布缓存影像服务,则您发布到的 ArcGIS Server 站点必须具有 ArcGIS Image Server。 如果要发布栅格数据集或栅格数据集图层,则不需要这样做。
ArcGIS Server 站点必须具有访问数据的权限。 要了解如何使影像服务中的数据对于站点可用,请参阅使数据可供 ArcGIS Server 访问。
缓存影像服务创作
对影像服务进行缓存时,ArcGIS Server 会以您选择的一组比例或像素大小进行绘制。 影像服务缓存后,除非重建或更新缓存,否则无法更改它的显示方式。 因此,在准备发布缓存影像服务的数据时,请执行以下操作:
- 进行缓存之前,请确保影像数据具有良好的外观并在每个比例级别显示正确的栅格。
缓存影像服务必须适用于进行缓存的每个比例。 每个影像服务都有各自的一组属性,例如,镶嵌方法。 镶嵌方法决定选择进行镶嵌和在每个比例级别显示的栅格。
- 确定为缓存选择的比例级别和像素大小。
如果选取的比例太少,用户可能感觉缺少信息或无法获得良好的影像服务视图。 如果选取的比例过多或选取了不必要的比例,则会增加缓存的创建时间和所占用的存储空间。 相反,您的组织可能已经确定了缓存时要使用的切片方案。 切片方案确定了缓存的某些属性,包括创建哪种比例级别和像素大小。
注:
如果使用镶嵌数据集作为影像服务的来源,最好要注意镶嵌数据集源所包含的级数,以便在定义切片方案时选择相应的比例级别或像素大小。 可通过查看镶嵌数据集的像元大小级别表来确定级数。
- 确保源数据存储在与所发布影像服务相同的坐标系中。
例如,如果您知道将使用 ArcGIS Online/Bing Maps/Google Maps 切片方案发布缓存影像服务,请使用 WGS 1984 Web Mercator(辅助球体)或 WGS 1984 Web Mercator 坐标系创建镶嵌数据集,因为这是该切片方案使用的坐标系。
您无法更改镶嵌数据集的投影,因此如果源镶嵌数据集使用不同于用于缓存的投影,则基于所需投影中的镶嵌数据集来创建参考镶嵌数据集。
有关设计源数据集和影像服务的详细信息,请参阅准备影像服务。
缓存影像服务发布
可以从 ArcGIS Pro 发布缓存影像服务。 有关说明,请参阅共享 Web 影像图层和配置 web 影像图层。
影响发布缓存影像服务所需时间的因素包括您为缓存设置的最大比例、构成所发布到的 ArcGIS Server 站点的硬件以及数据范围。
测试缓存
缓存一旦建好,就可以在 Web 应用程序中进行测试,以便确保影像服务按所需方式显示和执行。
可以在 web 应用程序中打开影像服务。 以下步骤描述如何通过 ArcGIS Server 服务目录在 ArcGIS API for JavaScript 查看器应用程序中打开影像服务:
- 在 Web 浏览器中,浏览至服务目录。例如,https://gisserver.domain.com:6443/arcgis/rest/services。
- 在服务列表中,单击影像服务。
所有影像服务 URL 都追加有文本 ImageServer。 如果影像服务位于根文件夹之外的文件夹中,则导航到该文件夹并选择服务。
显示页面显示服务名称、服务描述和图层列表。
- 单击在以下位置处查看:ArcGIS JavaScript。
服务在 ArcGIS API for JavaScript 查看器中打开。
- 对影像服务进行平移并缩放至不同比例。
在影像服务中平移和缩放时,您会注意到影像切片的显示没有太多延迟。 确认影像以您期望的所有比例绘制。
疑难解答
如果未显示出应用程序正在使用缓存的情况,请确保 ArcGIS Server 帐户对服务器缓存目录具有读取和写入权限。
如果正在使用 Mozilla Firefox 查看 Web 应用程序,则有一种简单方法来判断您的缓存切片是否正在使用。
- 右键单击 Web 应用程序,然后选择查看页面信息。
- 在页面信息窗口中,单击媒体按钮。
- 检查列表中显示的影像。如果能看到引用服务器缓存目录的 URL,则可以确信缓存正被使用。