Globe 缓存的工作原理

由于 ArcGlobe 在内部采用了数据切片 这种数据组织模式,因此它能够高效地处理超大的数据源。对数据切片进行存储以供日后使用的做法即称为数据缓存。使用 ArcGlobe 时,数据切片会始终存储在内存缓存中,也可以选择将其存储在磁盘缓存中。这些存储的数据图层的数据切片称为图层数据缓存。数据缓存的优点包括可提高显示性能并减少重复的数据请求。

globe 服务十分依赖图层数据缓存。该缓存由可用于显示的预渲染切片组成。服务从缓存中检索切片要比动态创建切片更快。因此,globe 服务将始终使用缓存。

Globe 缓存和地图缓存

如果您使用过 2D 地图服务,那么可能对地图缓存的概念比较熟悉。Globe 缓存存储在与地图缓存不同的文件格式中,并且文件夹层次结构也不同。但 ESRI globe 客户端 ArcGlobe 和 ArcGIS Explorer 可以读取 2D globe 缓存。

是否需要构建 globe 缓存?

ArcGlobe 和 ArcGIS Explorer 可以使用 2D 地图缓存并将其叠加在地球表面上。当这些 2D 地图缓存使用 ArcGIS Online/Bing 地图/Google 地图切片方案时,显示速度可以超过 globe 缓存的速度。如果在此切片方案中构建 2D 缓存,则无需构建和维护 globe 缓存。

遗留问题遗留问题:

采用之前 ArcGIS Online 所使用的基于 WGS 1984 的坐标系构建的 2D 地图缓存也可以达到或超过 globe 缓存的速度。

构建缓存的方法

最初在 globe 缓存中构建的数据量由您自己决定。有三种类型的缓存:完整数据缓存、部分数据缓存和按需(实时)数据缓存。

完整数据缓存

如果使用完整数据缓存,则将为数据集中定义的所有区域和细节等级生成和保存数据切片。使用 ArcGlobe 或 ArcGIS Server 可以对任何图层执行完整数据缓存。如果可行,建议使用生成完整数据缓存这种方法来部署 globe 服务。

作为高程的栅格数据必须始终构建完整数据缓存才能用作 globe 服务的一部分。有关如何进行上述操作的步骤,请参阅创建 globe 缓存切片

部分数据缓存

仅当在所选细节等级下生成缓存时才发生部分数据缓存。如果只构建部分缓存,您将允许服务器根据需要为缓存中不包含的细节等级生成数据切片。

当您的数据在许多细节等级下覆盖很大区域时,部分缓存有时要比完整缓存更适用。部分缓存应包括您预计用户会最常使用的细节等级。如果客户端请求其他细节等级,可通过按需缓存进一步生成切片。

按需数据缓存

在按需数据缓存中,服务器仅会为显示区域和客户端请求的细节等级生成切片。在地球上导航时,服务器会生成切片并将其添加到缓存中。这种数据缓存模式称为按需(或实时)数据缓存,因为仅会对访问的区域进行缓存。这些切片将保存到磁盘中,以便其他人请求查看相同细节等级的相同区域时可再次使用它们。

尽管使用按需缓存使您可以在最短时间(节省了初始数据缓存的时间)内发布 globe 服务,但第一个客户端请求切片时的性能比切片已缓存的情况要低。

除了作为高程的栅格数据之外,按需缓存支持所有数据类型。

构建缓存

创建 globe 缓存的过程分为两步,下面链接的主题中对这两个步骤进行了介绍:

  1. 设置缓存属性
  2. 创建 globe 缓存切片

在 Linux/Solaris 中,可以从命令行创建/更新缓存。在生成/更新缓存的过程中,可以遵照脚本指令来设置属性。

服务器缓存目录

服务器缓存目录是磁盘上用于存储缓存切片的文件夹。一个服务器缓存目录可存储多个缓存;但如果需要,可将多个服务器缓存目录添加到服务器。在服务属性 对话框的缓存 选项卡上,可以选择用于存储缓存的服务器缓存目录。

将服务器缓存目录与 Web 服务器上虚拟目录相关联是一种很好的做法,因为这样便可以通过 URL 来检索切片。这样做是出于性能原因。

如果将所有 ArcGIS Server 组件都安装在一台计算机上,系统会为您创建服务器缓存目录。(默认位置为 C:\arcgisserver\arcgiscache。)还会创建一个引用此位置的虚拟目录。

如果将 ArcGIS Server 组件安装在多台计算机上,需要自行配置服务器缓存目录及其关联的虚拟目录。有关详细信息,请参阅关于服务器目录配置多机部署

使用“发布到 ArcGIS Server”向导创建 globe 服务时,服务器会选择它找到的第一个服务器缓存目录。如果使用“添加新服务”向导,您将可以选择服务器缓存目录,而不使用自动指定的目录。在这两种情况下,均可在服务属性 对话框的缓存 选项卡上更改默认目录。

globe 缓存的存储方式

所有 globe 缓存都存储在服务器缓存目录的 GlobeCache 文件夹中。您无需创建 GlobeCache 文件夹;软件会在您创建第一个 globe 服务时为您创建该文件夹。创建 globe 服务时,您会为其指定一个服务器缓存目录,然后该服务的图层缓存会自动放置在 GlobeCache 文件夹中。

可以将多个 globe 服务指定到同一服务器缓存目录中。指定到同一服务器缓存目录的所有 globe 服务将共享同一 GlobeCache 文件夹。

通常,globe 服务中的每个图层在 GlobeCache 目录下都具有一个单独的唯一缓存。唯一的例外情况是合并的图层组和基于 Web 的图层组(ArcIMS、WMS 和 ArcGIS 地图服务图层等),组内的子图层将共享单个缓存。

globe 服务中所有图层的缓存必须驻留在同一服务器缓存目录中。不同的 globe 服务可使用不同的服务器缓存目录;但是,如果磁盘空间允许,建议对所有 globe 服务使用统一的缓存位置。

服务器缓存目录中的文件夹结构

可以在 Windows 资源管理器中打开服务器缓存目录来检查缓存切片。只能通过 ArcGlobe 或 ArcGIS Explorer 查看 globe 切片图像,但在 Windows 资源管理器中,您仍然可以看到标题名称和大小以及文件在磁盘上的保存位置。

GlobeCache 文件夹中的缓存以目录等级形式组织。已为 globe 图层命名顶级目录。在此目录中,您将看到地球六个面中每个面的子目录以及与缓存连接的图层文件。接下来,您将看到 globe 缓存对应的每个等级的文件夹,后面是表示相应等级的行的文件夹。这些行文件夹内包含实际的切片。


3/7/2012