常见缓存问题

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

常见缓存问题

地图缓存问题

Globe 缓存问题

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

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

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

为什么缓存工具(例如“管理地图服务器缓存切片”)不显示我为 CachingTools 服务指定的实例总数?

对于每个缓存作业,CachingTools 服务的某个实例必须充当控制器,将工作分配给其他实例。缓存工具(例如“管理地图服务器缓存切片”)在显示可以在一个作业上处理的默认最大实例数时,要从 CachingTools 的可用实例总数中减去一个,即去掉充当控制器的那个实例。

因此,如果您的集群允许每台 GIS 服务器计算机运行两个 CachingTools 实例,而且您在集群中有三台 GIS 服务器计算机,您总共有 3 * 2,即 6 个可用实例,缓存工具将显示可以在任何给定作业中同时处理的默认最大实例数为 5。

另请参阅分配服务器资源以创建缓存

如何在某些比例下生成完整缓存,而在其他比例下生成部分缓存?

大比例下,预先创建预期最常用的切片并设置按需创建其他切片通常是一种很好的做法。与此相反,小比例下可能要创建完整缓存,因为小比例需要较少切片并将在客户端最初查看地图时被频繁查看。

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

假定存在要在以下比例下缓存的地图:

  • 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、ArcGIS API for Flex 或 ArcGIS API for Silverlight 构建的应用程序),您可以通过在缓存的根级别放置空的切片(如 missing.png、missing.jpg 或 blank.png)来配置“数据不可用”切片。如果在缓存中找不到切片,则服务器会默认使用此切片。说明如下:

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

服务器会自动处理缺失的切片,方法为使用缓存根级别的特殊“缺失”或“空白”切片来替换应得到但缺失的切片。

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

如果在地图文档中正使用动态标注引擎来放置标注(而不是注记),可能偶尔会在缓存切片中看到同名标注。这种情况的出现不会比 4,096 像素在任一方向上发生更频繁。使用注记可消除所有同名标注。使用注记时,标注与地图上某个点相关联,不会存在同名现象。

基于感兴趣区创建缓存时,为什么在感兴趣区的外部看到创建了额外切片?

为了在切片上避免同名标注,缓存工具最初绘制 4096 x 4096 像素的区域(默认的 256 x 256 像素切片大小的 256 个切片),然后将此区域裁剪为切片方案中所请求大小的切片。根据切片方案以及感兴趣区的位置和形状,4096 x 4096 区域的某些切片可能落在感兴趣区的边界之外。这属于预期的行为。在超出 4,096 像素的感兴趣区边界之外的任何方向上,都不应看到创建的切片。

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

请求新切片时(按需或使用缓存工具),始终成组创建切片。缓存机制一次不会仅创建一个切片。如果一次仅创建了一个切片,则将会看到许多同名标注,因为服务器将不会意识到相邻切片上的标注。

如果已启用按需缓存,并且平移至未缓存区域,则服务器将绘制一个 4096 x 4096 像素区域,然后将其裁剪为切片(若使用抗锯齿功能,该区域为 2048 x 2048)。因此,如果切片尺寸为 256 x 256 像素,可预期创建多达 256 个切片。如果地图包含许多图层或复杂符号,将导致客户端等待时间较长。

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

对于 globe 服务应该使用什么切片方案?

与地图服务不同,所有 globe 服务均使用相同的切片方案;因此,不必进行任何操作来为 globe 服务设置切片方案。将在内置 globe 切片方案级别自动缓存数据。

如果仔细观察,可看到这些级别将反映在 ArcGlobe 或 ArcGIS Explorer 中。随着在地球上不断放大,将会注意到经过不同高度时图片会变得略微清晰或模糊一些。

ArcGIS Online/Bing 地图/Google 地图切片方案中的比例与 ArcGlobe 中的内置比例级别大致匹配。如果打算将 2D 地图服务叠加在地球表面,此切片方案通常为很好的选择。除了切片方案在外观上非常理想之外,ArcGlobe 设计为可使用此切片方案快速绘制 2D 服务。

9/15/2013