关于在 ArcGlobe 中使用图层组缓存
ArcGlobe 中的图层组本身可以具有缓存。图层组缓存可用来代替子缓存(对图层组进行栅格化),也可作为子缓存使用(合并子缓存)。在这两种情况下,图层组缓存都将表示子图层的合并视图。
图层组缓存可通过减少 ArcGlobe 必须渲染到屏幕的磁盘缓存数量来提升 ArcGlobe 的性能。像所有缓存类型一样,当重新访问相同区域时,图层组缓存的性能优势会变得很明显。
对图层组进行栅格化
对图层组进行栅格化时,会将子图层合并到图层组的单一缓存中,从而将所有图层渲染为使用单一缓存的单一图像。栅格化图层组内的所有子图层也必须进行栅格化。使用该方法时,之前未栅格化的所有子图层都将被栅格化。通过这种方式,图层组的绘制方式将与它在 ArcMap 中的绘制方式相似。
对图层组进行栅格化特别有助于将图层组作为一个整体进行操作,如背景显示。通过将多个图层合并成一个典型栅格,减少了存储到磁盘上的缓存大小,而且只需绘制单一图层,可提高性能。
使用单一栅格图层意味着子图层将共享某些图层属性。尤其是最小像元大小和以磅为单位的符号大小,这两种属性可在图层组合并为单一栅格时彻底改变子图层的外观。为避免遇到麻烦,可预先为所有子图层设置公共的最小像元大小和以磅为单位的符号大小,然后再创建图层组缓存。
通过栅格化图层组来对其进行合并时,将在内容列表的按类型列出 视图中添加单一图层表示图层组,不过会移除所有子图层。子图层可通过图层组的展开树进行访问,该树仅在通过单击 按钮将内容列表模式切换到包括图层组的列表时出现。虽然子图层的可见性可在该列表中进行切换,但应尽可能避免这种切换,因为对于图层组来说,每次显示画面的更改都会使图层组缓存失效而按照要求重新生成。这将非常耗费成本,因为没有可供开发的子缓存。
合并子缓存
合并子缓存时,会将所有栅格化子图层的显示画面合并成图层组的单一显示缓存,同时允许子图层保留并维持它们自己的缓存。这样便可将单一绘制图层发送到 ArcGlobe,从而提高渲染速度。
当图层组中包含一个或多个您不希望进行栅格化的图层时,合并子缓存将非常有用。例如,您的图层组中可能包含高程图层。栅格化图层将以优化的方式进行渲染,而非栅格化图层将与以前一样分别进行渲染。
对于要在不同距离范围内显示的一系列图层(如道路图层的若干个显示级别),合并子缓存也非常有效。使用此方法时,您可以使每个显示级别分别对应独立的缓存,但是只向 ArcGlobe 发送一个渲染图层。
通过合并子缓存来合并图层组时,将在内容列表的按类型列出默认视图中添加一个新图层表示图层组,而子图层可通过展开树进行访问。虽然子图层的可见性仍可进行切换,但应尽可能避免这种切换,因为对于图层组来说,显示画面的每次更改都会使图层组缓存被删除而按照要求进行重新生成。不过,这种操作的成本要小于栅格化图层组,因为子缓存不会受到其可见性状态的影响,而只有最终合并的缓存将会失效。