Skip To Content

常见缓存问题

以下是有关地图缓存的常见问题。这些主题按从基础到高级的顺序排列。在很多情况下,这些答案也可在帮助中的其他地方找到;但是,此主题可能比搜索帮助更快地提供具体问题的答案。

常见缓存问题

地图缓存问题

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

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

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

如何将更多的比例添加到 ArcGIS Online/Bing 地图/Google 地图切片方案中?

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

  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 知识库文章 36939
  2. 将 missing.png、missing.jpg 或 blank.png 文件保存到地图服务的 _alllayers 文件夹下,例如, 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 个切片。如果地图包含许多图层或复杂符号,将导致客户端等待时间较长。

因此,强烈建议为地图的常用区域预创建切片,仅在较不常用区域使用按需缓存。如果具有复杂的源地图文档,请避免按需构建整个缓存。