Skip To Content

常见缓存问题

以下是有关地图缓存的常见问题。 主题涵盖从基础到高级的不同主题。 在许多情况下,答案重新表述了帮助中其他位置的信息;但是与搜索帮助相比,本主题可以更快地提供特定问题的答案。

常见缓存问题

地图缓存问题

常见缓存问题

为什么缓存工具重新启动我的服务?

管理地图服务器缓存切片及其他缓存工具在后台执行了多种需要在工具运行之前和之后重新启动服务的操作。 如果缓存工具更改了 conf.xml 切片方案文件,则需要重新启动,地图服务才能获取更改。 例如,如果使用管理地图服务器缓存比例添加比例或从缓存中删除比例,则需要重新启动地图服务以识别对切片方案的更改。

重新启动时,服务暂时不可用。

如何将更多比例添加至 ArcGIS Online/Bing Maps/Google Maps 切片方案?

如果已具备高分辨率数据并且想要以 ArcGIS Online/Bing Maps/Google Maps 比例以及自有的一组较大或较小比例构建缓存,请执行以下工作流:

  1. 在 ArcMap 的服务编辑器窗口中定义缓存时,请使用切片方案下拉列表来选择切片方案文件
  2. 浏览至 <ArcGIS for Desktop installation location>\TilingSchemes\ArcGIS_Online_Bing_Maps_Google_Maps.xml
  3. 服务编辑器窗口中,单击高级设置
  4. 输入要添加的比例并单击添加。重复此过程,直到添加完所有所需的比例。
  5. 随后开始发布服务并构建切片。

现有缓存的替代工作流程是运行“管理地图服务器缓存比例”工具。

能否在多个 ArcGIS Server 站点之间共享缓存目录?

是。 如果您具有多个 ArcGIS Server 站点(例如开发站点和生产站点),则可以在站点之间共享缓存目录。 这样不需要您在站点之间复制缓存。 此举还允许您从多个站点读写单一缓存目录。

当将缓存目录设置为可在站点之间访问时,您将需要通过网络共享目录并授予每个站点的 ArcGIS Server 帐户访问缓存目录的权限。 此帐户用户在缓存中读写(根据需要)切片。 有关 ArcGIS Server 帐户的详细信息,请参阅 ArcGIS Server 帐户

只需向 ArcGIS Server 帐户授予所需级别的权限。 例如,如果您要与之共享缓存目录的站点只需从缓存中读取切片,则只需向帐户授予读取权限。 与之相反,如果您要通过每个站点创建缓存切片,则需要向每个站点的 ArcGIS Server 帐户授予读写权限。

警告:

如果您要从多个站点在同一缓存目录中创建缓存切片,则需要极其小心,因为其他站点可能覆盖现有缓存。 例如,如果您具有两个在不同站点上同名的地图服务,则当在站点 B 上意外启动地图服务的缓存作业时,可能覆盖站点 A 上地图服务的现有缓存。

在共享缓存目录后,需要将每个站点更新为参考共享的网络位置。 有关说明,请参阅在 Manager 中编辑服务器目录

如果删除服务,缓存是否也被删除?

否。 缓存切片、切片方案以及文件夹结构仍然保留在磁盘上。 如果您想要完全删除缓存,请使用删除地图服务器缓存工具。 如果要删除切片但保留缓存文件夹结构和切片方案,请使用管理地图服务器缓存切片工具,并将更新模式设置为 Delete_Tiles

地图缓存问题

如何在某些比例下生成完整缓存并在其他比例下生成局部缓存?

大比例下,预先创建预期最常用的切片并设置按需创建其他切片通常是一种很好的做法。 与之相反,在小比例下,您可能想要创建完整缓存,因为小比例需要的切片更少,客户在最初查看地图时经常会查看这些比例。

可多次运行管理地图服务器缓存切片工具以在地图的某级别构建部分缓存并在其他级别构建完整缓存。

假设您有一个地图要在以下比例下缓存:

  • 1:128,000
  • 1:64,000
  • 1:32,000
  • 1:16,000
  • 1:8,000
  • 1:4,000

可运行管理地图服务器缓存切片,然后仅选中 1:128000、1:64000 和 1:32000 复选框。 默认情况下,将缓存这些比例的全图。

然后,您可以再次运行该工具,并仅选中 1:16000、1:8000 和 1:4000 框。 同时,您可以根据要素类中的要素范围选择缓存这些比例级别,例如城市或县边界,而不是缓存地图的全图。 此举将在以下三个比例级别下创建局部缓存。 (可选)可选择根据需要在这些比例下创建剩余切片。

如何为空白缓存区域显示“数据不可用”切片?

如果缓存区域不存在,则可按需创建切片或将 Web 服务器配置为返回数据不可用切片。 此外,如果有人平移到地图边缘或浏览到尚未完成缓存的区域,则数据不可用切片同样有用。 在某些情况下,与什么都不返回相比,将服务器配置为返回数据不可用切片可以优化用户体验。

对于基于 REST 的应用程序(如通过 ArcGIS API for JavaScript 构建的应用程序),您可以通过在缓存的根级别放置空的切片(如 missing.png、missing.jpg 或 blank.png)来配置“数据不可用”切片。 如果切片在缓存中找不到,则服务器将默认为该切片。 下面是相关说明:

  1. 创建与切片方案中的切片尺寸和图像格式相同的图像。 将其命名为 missing.png 或 missing.jpg。 如果需要清晰的空白切片(如用于需要透明度的叠加服务的切片),则使用 blank.png。 要下载示例切片,请参阅以下 Esri 知识库文章
  2. 在地图服务的 _alllayers 文件夹下保存 missing.png、missing.jpg 或 blank.png 文件,例如 opt/arcgis/server/usr/directories/arcgiscache/MyMapService/Layers/_alllayers/missing.png

服务器将自动处理缺失的切片,方法为在缓存的根级别下将预期但缺失的切片替换为特殊的缺失或空白切片。

如何在缓存中避免同名标注?

如果您要使用地图文档中的动态标注引擎放置标注(与注记相反),则可能偶尔在缓存切片中看到同名标注。 如果任何方向上有 4,096 个像素,更容易出现上述情况。 可通过使用注记消除所有同名标注。 使用注记时,标注将与地图上的一个点相关联,不会出现同名标注。

根据感兴趣区创建缓存时,为什么会在感兴趣与外部创建额外的切片?

为了避免切片上出现同名标注,缓存工具最初绘制 4,096 像素 x 4,096 像素的区域(默认切片大小为 256 x 256 像素的 256 个切片),之后会将其切割为在切片方案中请求的大小的切片。 根据切片方案以及感兴趣区的位置和形状,4,096 x 4,096 区域中的某些切片可能位于感兴趣区边界外面。 该行为是预期行为。 不会在任何方向上超过 4,096 个像素的感兴趣区边界外创建切片。

按需创建切片时,为什么会在用户地图范围外创建额外的切片?

请求新切片(按需或使用缓存工具)时,将始终在组中创建切片。 缓存机制从不会一次仅创建一个切片。 否则,您会看到许多同名标注,因为服务器无法感知相邻切片上的标注。

如果启用了按需缓存并且平移到未缓存区域,则服务器将绘制 4,096 x 4,096 像素区域并将其切割成诸多切片(使用抗锯齿时,此区域为 2,048 x 2,048)。 因此,如果切片尺寸为 256 x 256 像素,则预期最多可创建 256 个切片。 如果地图包含许多图层或复杂符号,这可能导致客户端长时间等待。

因此,强烈建议您提前为地图的受欢迎区域创建切片并仅在不太受欢迎的区域中使用按需缓存。 如果您具有复杂的源地图文档,避免按需构建完整缓存。