Globe 缓存的工作原理
由于 ArcGlobe 在内部采用了“数据切片”的数据组织模式,因此它能够有效地处理特别大的数据源。对数据切片进行存储以供日后使用的做法即为数据缓存。使用 ArcGlobe 时,数据切片会始终存储在内存缓存中,也可以选择将其存储在磁盘缓存中。这些存储的数据图层的数据切片称为图层数据缓存。数据缓存的优点包括可提高显示性能并减少重复的数据请求。
globe 服务十分依赖图层数据缓存。该缓存由可用于显示的预渲染切片组成。服务从缓存中检索切片要比动态创建切片更快。因此,globe 服务将始终使用缓存。
Globe 缓存和地图缓存
如果您使用过 2D 地图服务,那么可能对地图缓存的概念比较熟悉。Globe 缓存存储在与地图缓存不同的文件格式中,并且文件夹层次结构也不同。但是,Esri globe 客户端(ArcGlobe 和 ArcGIS Explorer Desktop)可以读取 2D globe 缓存,因此不总是需要复制 globe 缓存(如果具有现有地图缓存)。
高程图层需要 Globe 缓存,因为它不受按需生成的支持。建议所有图层都生成缓存,以提高总体性能。
构建缓存的方法
最初在 globe 缓存中构建的数据量由您自己决定。有三种类型的缓存:完整数据缓存、部分数据缓存和按需(实时)数据缓存。
完整数据缓存
如果使用完整数据缓存,则将为数据集中定义的所有区域和细节层次生成和保存数据切片。使用 ArcGlobe 可以对任何图层执行完整数据缓存。如果可行,建议使用生成完整数据缓存这种方法来部署 globe 服务。
作为高程的栅格数据必须始终构建完整数据缓存才能用作 globe 服务的一部分。有关如何进行上述操作的步骤,请参阅创建 globe 缓存切片。
部分数据缓存
仅当在所选细节层次下生成缓存时才发生部分数据缓存。如果只构建部分缓存,您将允许服务器根据需要为缓存中不包含的细节层次生成数据切片。
当您的数据在许多细节层次下覆盖很大区域时,部分缓存有时要比完整缓存更适用。部分缓存应包括您预计用户会最常使用的细节层次。如果客户端请求其他细节层次,可通过按需缓存进一步生成切片。
按需数据缓存
在按需数据缓存中,服务器仅会为显示区域和客户端请求的细节层次生成切片。在地球上导航时,服务器会生成切片并将其添加到缓存中。这种数据缓存模式称为按需(或实时)数据缓存,因为仅会对访问的区域进行缓存。这些切片将保存到磁盘中,以便其他人请求查看相同细节层次的相同区域时可再次使用它们。
尽管使用按需缓存使您可以在最短时间(节省了初始数据缓存的时间)内发布 globe 服务,但第一个客户端请求切片时的性能比切片已缓存的情况要低。
除了作为高程的栅格数据之外,按需缓存支持所有数据类型。
服务器缓存目录
服务器缓存目录是磁盘上用于存储缓存切片的文件夹。在创建 ArcGIS for Server 站点时,会在为服务器目录指定的位置创建服务器缓存目录。一个服务器缓存目录可存储多个缓存;但如果需要,可将多个服务器缓存目录添加到服务器。因此,在服务编辑器 的缓存选项卡上,可以选择用于存储缓存的服务器缓存目录。
如果将其他 GIS 服务器计算机添加到您的站点,则需要在服务器缓存目录上启用文件共享,以便参与的所有计算机都可以看到它。无论使用 ArcGlobe 还是 ArcMap,该过程都相同。有关详细信息,请参阅关于服务器目录和配置多机部署。确保为 ArcGIS Server 帐户授予服务器缓存目录的写入权限,以使服务器可以成功地将切片放置在该目录中。完成创建缓存时,可选择删除写入权限。
globe 缓存的存储方式
所有 globe 缓存都存储在服务器缓存目录的 GlobeCache 文件夹中。您无需创建 GlobeCache 文件夹;软件会在您创建第一个 globe 服务时为您创建该文件夹。创建 globe 服务时,您会为其指定一个服务器缓存目录,然后该服务的图层缓存会自动放置在 GlobeCache 文件夹中。
可以将多个 globe 服务指定到同一服务器缓存目录中。指定到同一服务器缓存目录的所有 globe 服务将共享同一 GlobeCache 文件夹。
通常,globe 服务中的每个图层在 GlobeCache 目录下都具有一个单独的唯一缓存。唯一的例外情况是合并的图层组和基于 Web 的图层(WMS、地图服务图层等),组内的各子图层将共享单个缓存。
globe 服务中所有图层的缓存必须驻留在同一服务器缓存目录中。不同的 globe 服务可使用不同的服务器缓存目录;但是,如果磁盘空间允许,建议对所有 globe 服务使用统一的缓存位置。
服务器缓存目录中的文件夹结构
可以打开服务器缓存目录来检查缓存切片。只能通过 ArcGlobe 或 ArcGIS Explorer Desktop 查看 globe 切片图像,但您仍然可以看到标题名称和大小以及文件在磁盘上的保存位置。
GlobeCache 文件夹中的缓存以目录等级形式组织。已为 globe 图层命名顶级目录。在此目录中,您将看到 globe 六个面中每个面的子目录以及与缓存连接的图层文件。接下来,您将看到 globe 缓存对应的每个等级的文件夹,后面是表示相应等级的行的文件夹。这些行文件夹内包含实际的切片。
如果您已经具有 2D 地图缓存,是否需要构建 globe 缓存?
为了在 ArcGIS globe 客户端中更快地使用 2D 和 3D 地图,可通过 ArcGIS Online/Bing 地图/Google 地图切片方案构建 2D 地图缓存来获得最佳性能。显示速度可超过 globe 缓存的速度。如果在此切片方案中构建 2D 缓存,则无需构建和维护 globe 缓存。如果无法使用这些切片方案,则可通过使用 globe 服务缓存来获得最佳性能。
采用之前 ArcGIS Online 所使用的基于 WGS 1984 的坐标系构建的 2D 地图缓存也可以达到或超过 globe 缓存的速度。
当创建了 2D 地图缓存并想基于该 2D 缓存创建相同的 3D globe 缓存时,您可能会希望将地图服务添加至 ArcGlobe 中。在这种情况下,您需要考虑的仅是生成缓存,而无需考虑导航 globe。