Skip To Content

缓存创建工具和过程

此主题提供了 ArcGIS EnterpriseArcGIS Pro 中的地图图像图层和影像图层生成的栅格切片的缓存生成过程的详细信息。

ArcGIS Pro 中发布缓存地图和影像服务

要开始使用缓存,您必须首先使用 ArcGIS Pro 或使用 ArcGIS Server Manager 中的服务定义发布地图或影像服务。 您可以将服务配置为在 ArcGIS Pro 中发布或创建服务定义文件时使用缓存。 有关详细信息,请参阅 ArcGIS Pro 中的服务发布配置地图图像图层

可在发布服务时立即创建切片(适用于较小的缓存),也可选择在发布后自行构建缓存(适用于您希望在地理上限制按大比例构建的缓存数量的缓存)。 自行构建缓存时,将使用“服务器工具”中提供的管理地图服务器缓存切片(服务器)地理处理工具执行缓存的构建。

“生成地图服务器缓存切片方案”工具

通过生成地图服务器缓存切片方案工具,您可以使用缓存的比例、坐标系和其他属性为 GIS 内容创建切片方案,而无需将其发布为服务。 该工具输出 XML 格式的切片方案文件,可以在创建缓存时使用该文件加载存储的属性。

创建地图服务器缓存方案工具

使用创建地图服务器缓存方案工具,您可以通过在指定的 ArcGIS 缓存目录中创建切片方案和预备文件夹,将动态地图或影像服务转换为缓存地图或影像服务。 仅发布者和管理员可以运行此工具。

注:

此工具不会为服务创建缓存切片。 要使用缓存切片渲染服务,服务发布者或管理员必须在重新创建所有切片模式下运行管理地图服务器缓存切片工具。

缓存存储格式

栅格缓存使用紧凑型 v2 格式存储,其中 16,384 个切片存储在包文件中。 可以在使用生成地图服务器缓存切片方案创建地图服务器缓存方案地理处理工具定义的缓存切片方案中定义单个切片大小。

创建缓存时,可能会在缓存文件中看到临时 .lock 文件和 .done 文件。 .lock 文件允许 ArcGIS Server 追踪进程中正在创建的包。 存在 .lock 文件并不代表客户端无法访问包。 同样,.done 文件允许 ArcGIS Server 追踪已经创建的包。 缓存工作完成后,所有的 .lock.done 文件都会被删除。

小型缓存在每个级别可以有一个包。 然而,更常见的情况是,包边界与某个地理部分相交,这会导致一个级别中有多个包。 大型缓存通常会包含多个包。

包的边界由切片方案的原点确定,并且不可调整。 例如,在邻近地区/街道级别比例为 1:4096 时,一个完整的包大约覆盖美国东部一个中等规模县的面积。

在更新切片时,并不会重新创建整个包。 而是更新 4096x4096 像素(无抗锯齿)或 2048x2048 像素(带抗锯齿)的面积。 有时将此面积单位称为超级切片。

ArcGIS 客户端(包括 Web API)可读取紧凑缓存格式所生成的包文件。 Web 客户端会向 ArcGIS Server 站点发出调用以获取切片的具体级别、行和列。 ArcGIS Server 收到请求后会返回包中的相应切片。

注:

紧凑型缓存格式有两个版本:10.0 引入的 compact 以及 10.3 引入的 compactv2。 compact 版本包括用作索引的单独 .bundlex 文件;compactv2 版本将索引整合到了 .bundle 文件。 Compactv2 提高了性能,特别是当缓存位于网络共享或云存储上时,仅与在 10.3 或更高版本上运行的 ArcGIS Server 站点兼容,并且是这些版本的默认设置。

如果要将 compactv2 格式的压缩缓存传输到运行 ArcGIS Server 10.0 - 10.2 的站点,请使用 ArcGIS Pro 中的导出地图服务器缓存工具

缓存目录

默认情况下,ArcGIS Server 会在您配置 ArcGIS Server 站点时创建的服务器缓存目录中创建地图和影像服务缓存。 但是,您可以配置其他位置来存储缓存文件。

当为站点配置缓存目录时,发布者会选择以下目录之一来存储其地图和影像服务的缓存。

可打开服务器缓存目录以检查缓存切片和切片方案文件 conf.xml。 缓存目录也可能包含 status.gdb 文件地理数据库,该数据库包含已构建的切片的信息。

在多机服务器站点上生成缓存

如果 ArcGIS Server 站点包含多台计算机,且这些计算机同时尝试向一个共享缓存目录写入切片,则应用程序的可扩展性势必下降。 为防止出现这种情况,ArcGIS Server 使用本地缓存目录将切片临时写入每台 ArcGIS Server 计算机。

注:

将地图或影像服务发布到托管服务器时,将使用托管服务器站点的缓存目录。

标注

以下部分将解决有关服务器创建地图缓存切片时地图标注行为的常见问题。

避免缓存中的同名标注

在缓存作业期间,ArcGIS 将一次绘制大型区域以帮助减少同名标注。 然后将这些大型区域(超级切片)分成更小的单个切片。 超级切片大小为 2048x2048 像素(带抗锯齿)或 4096x4096 像素(无抗锯齿)。

在超级切片内部不应看到任何标注重复项,但重复项可能出现在超级切片边界处。 这是因为当一个超级切片被标注时,标注放置引擎不了解相邻超级切片上的标注。 事实上,您的标注引擎可能正在努力在超级切片中包含尽可能多的标注,因此一些标注将被放置在边缘附近。 它可能会在相邻的超级切片上进行相同的操作,导致超级切片边界附近出现重复项。

避免缓存中同名标注的唯一方法是使用注记。 注记为特殊图层,其中每个标注都被视为具有属性的要素。 属性包括地图上为每个标注指定的位置。 您可以编辑注记图层以移除同名标注。

为地图缓存创建注记图层

注记图层可能非常大,而为地图的各种不同比例创建注记似乎是一项艰巨的任务。 “注记”工具集中的两个工具位于制图工具下方,旨在帮助您为地图缓存创建注记。

第一个工具是地图服务器缓存切片方案转换为面。 此工具读取地图缓存切片方案并创建表示切片方案每个比例的超级切片边界的格网。 这些格网有助于将注记创建工作分解为可管理的部分。

另一个工具是切片标注转注记。 您将提供创建的超级切片格网、地图文档和输出工作空间,此工具会为缓存中的每个比例创建注记。 为地图文档中启用标注的所有图层创建注记。

此工具生成的注记将提供与创建缓存时相同的标注放置。 然后,您可以检查或查询图层中的同名标注,并在构建缓存之前将其删除。 或者,您可以在发现冲突时手动清理缓存更新之间的注记图层。

在大型区域上运行上述工具之前,最好使用小范围的简单地图进行练习。 创建超级切片格网和绘制注记任务非常耗时,需要确保在对大型地图使用这些工具时提供了正确的参数。 您的练习还有助于估计这些工具可能需要的时间及其创建的注记数量。

标注如何影响切片创建速度

计算地图标注最佳位置的过程可能非常耗时,而且标注会减慢切片创建速度。 注记是缓存时绘制标注的最快方式,因为它不需要标注放置决策。 每个标注都具有作为标注属性的预先确定的坐标。

使用 Maplex 标注引擎 是绘制标注的的最慢方法。 虽然 Maplex 提供了很好的标注,但它会降低地图缓存的速度。

要在良好标注放置和性能之间取得最佳平衡,请使用 Maplex 标注引擎 在地图文档中绘制标注,并将这些标注转换为注记以在地图服务中使用该注记。

警告:

Maplex 会占用大量内存。 在使用 Maplex 构建整个缓存之前,构建一个测试缓存并在创建切片时检查系统的内存使用情况。 如果内存使用量接近计算机限制,请考虑禁用 Maplex。 否则,可能会导致不稳定问题,并可能在创建切片时发生崩溃。

确定是否在单独的缓存中保留标注

矢量要素及其关联标注通常包含在同一个缓存中。 通常情况下,不需要允许用户关闭标注;但是,如果需要执行此操作,将标注与单独缓存中的要素隔离开是一个不错的选择。

标注通常不应包含在影像缓存中。 这允许影像单独使用或在其他应用程序中重复使用。 与具有多个标注叠加缓存的一个影像缓存相比,具有不同标注集的多个影像缓存在磁盘上累积占用的空间更多。