基于要素边界的地图缓存
ArcGIS 允许您将切片创建的空间范围限制在要素类边界内。指定此要素类的方式有两种:
- 发布服务或首次初始化缓存时,设置服务编辑器 对话框中的缓存 > 高级设置选项卡上的要缓存的感兴趣区参数。从下拉列表中,选择从要素类导入。仅当您在发布过程中选择了自动构建缓存时,才会应用此感兴趣区。
- 打开“管理地图服务器缓存切片”工具,并设置感兴趣区参数。此设置将会覆盖您可能已在服务编辑器 中设置的任何感兴趣区。
如果您是在 ArcMap 中运行“管理地图服务器缓存切片”工具,则还可以选择在屏幕上草绘感兴趣区。当需要一次性地运行工具以尝试修补已知缓存区域中的缺失切片或确保覆盖给定区域时,此方法十分有用。然而,对于大多数有组织的缓存作业或更新内容而言,建议您提供一个要素类。
按要素类边界进行缓存将允许您仅在所需位置创建切片,避免出现空的或不感兴趣的区域。例如,当您对某一国家/地区进行缓存时,您可能只需要提供一个包含主要城区的要素类。这样做,服务器就只需预创建覆盖那些城区的切片。其余区域则可以根据客户端的请求按需进行缓存。这样您就不必预先创建不需要的乡村区域的切片,从而节省了时间和磁盘空间。
下图显示的是当要素类只包含加利福尼亚时将创建的切片的理论格网。此要素类有助于避免在海洋和毗邻的州中创建不需要的切片。假如您使用的是默认的矩形范围,则会包含这些不需要的切片。
支持的形状类型
您必须使用一个面要素类来定义感兴趣区域。如果要基于点或折线要素类构建或更新切片,您必须首先以很小的值对要素进行缓冲以获取一个面要素类。还建议您在使用缓冲区作为感兴趣区域之前进行融合及概化。
由于各点只包含一个折点,因此通常可通过动态地图服务或客户端图形快速进行绘制(如同 Esri Web 制图 API 中的要素图层)。经过性能测试之后,您可能会发现根本无需对各点进行缓存。
最佳做法
以下提示有助于您以更有效的方式来基于要素类创建缓存:
在大比例下仅按要素类进行缓存
在小比例下,创建相对较少的切片,这样无论是否通过要素类进行缓存,都不会有太大的区别。如果在小比例和中等比例下创建所有切片,可确保当用户打开地图并执行放大操作时,既不会丢失任何切片,也不必按需创建任何切片。
为使出现同名标注的概率降至最低,缓存工具将先绘制较大区域的图像或超级切片,之后再将图像剪切成所需大小的切片。当地图服务启用抗锯齿功能时,超级切片为 2048 x 2048 像素;否则为 4096 x 4096 像素。当您的要素与超级切片的边界相交时,必须创建整个超级切片。这意味着,在通过要素类进行缓存以在节省时间和磁盘空间方面获得实际效果之前,将进行某种程度的放大。如果要素数量众多且遍布于地图上,由于大部分要素都将与超级切片相交,因此,通过要素类进行缓存可能并不会给您带来多大好处。
概化要素边界
如果要素类中存在过多的折点,就会减缓缓存工具的速度,但幸运的是您不需要有许多折点。如果缓存工具正在绘制的是方形区域,通常会降低要素类中详细要素的缓存细节。您的要素类不需要包含所有的岛屿、码头和水港。
可以使用简化面工具从要素类中系统地移除折点,而不改变常规形状。如果您的要素类是从模型中派生而来的,您可以将“简化面”作为模型中的最后一步操作。某些工具(如缓冲区)会向您的要素类中添加过多的折点。
下面的图像显示的是无论您使用详细的要素类还是使用概化的要素类,所创建的切片都会极其相似。通过使用“简化面”工具,第二个要素类中的大部分折点已被移除。灰色方形表示一个大小为 4096 x 4096 的超级切片,比例约为 1:4500。
在以前的版本中,建议每个要素要足够大,从而包含多个切片包以便获取服务实例的最佳利用率。此建议从 10.1 开始不再适用。
此外,以前版本中可用的状态跟踪字段从 10.1 开始也不再使用。要查看缓存的完成状态,请在目录树中右键单击服务,然后单击查看缓存状态。