地图缓存中的标注
许多服务器管理员都对服务器创建地图缓存切片时地图标注的行为方式存有一些问题。其中包括:
- 如何在缓存中避免出现同名标注?
- 标注如何影响切片创建速度?
- 标注会保留在单独的缓存中吗?
此主题提供了以上问题的相关解答。
如何在缓存中避免出现同名标注?
缓存作业中,ArcGIS 一次将绘制较大区域以有助于减少同名标注。然后,将这些较大区域(超级切片)划分为较小的独立切片。具有抗锯齿功能的超级切片为 2048 x 2048 像素,而没有抗锯齿功能的超级切片为 4096 x 4096 像素。
超级切片中不应出现任何同名标注,但可能会在超级切片的边界处出现同名标注。这是因为,当对超级切片进行标注时,标注放置位置引擎未识别出相邻超级切片上的标注。事实上,标注引擎可能正在努力使超级切片中包含尽可能多的标注,进而在边附近放置了一些标注。在相邻的超级切片上可能发生同样的情况,使得超级切片边界附近出现同名标注。
避免缓存中出现同名标注的唯一方法就是使用注记。注记是一种特殊图层,其中的每个标注都将被视为带有属性的要素。每个标注的属性中都包含地图上的指定位置。可以编辑注记图层以移除同名标注。
为地图缓存创建注记图层
注记图层可能会变得很大,这样,为地图所有不同的比例创建注记可能是一项令人望而生畏的任务。制图工具 > 注记工具集内的两个工具可帮助您为地图缓存生成注记。
第一个工具是地图服务器缓存切片方案转换为面。此工具将读取地图缓存切片方案,并以切片方案的每个比例创建代表超级切片边界的格网。这些格网可帮助将注记创建任务分解为多个易于管理的子任务。
下一个工具是分块标注转注记。您将提供所创建的超级切片格网、地图文档以及输出工作空间,此工具将为缓存中的每个比例创建注记。将为已启用标注的地图文档中的所有图层创建注记。
通过此工具创建的注记所提供的标注放置位置与创建缓存时得到的标注放置位置相同。然后可检查或查询图层中是否存在同名标注,并在构建缓存之前将它们删除。或者,随着冲突被发现,可以手动清除缓存更新之间的注记图层。
对较大区域运行以上工具之前,最好先使用小范围在简单的地图上做一下测试。创建超级切片格网与绘制注记均为时间密集型任务,您可能希望确保当对较大地图使用这些工具时已提供了正确的参数。还可通过练习会话来帮助您对工具可能会花费的时间以及它们创建的注记数量有一个大概的了解。
标注如何影响切片创建速度?
计算最佳地图标注位置可能是个很耗时的过程,且标注可能会降低切片的创建速度。使用注记是在缓存时绘制标注的最快方法,因为它不要求在标注放置位置方面做出决策。每个标注都有预先确定的坐标,这些坐标是标注的一个属性。
绘制标注第二快速的方法就是使用默认的 ArcMap 标注引擎。标注引擎需要对每个标注的放置位置做出决断,如果存在很多标注,决策时间可以累加。
使用 Maplex 标注引擎绘制标注的速度最慢。Maplex 提供了更多选项,计算功能也更强大,同 ArcMap 标注引擎相比,其会放置更多的标注。虽然 Maplex 提供的标注很好,但是它减缓了地图缓存。
为在好的标注放置位置与好的性能之前找到最佳平衡,请在地图文档中使用 Maplex 标注引擎绘制标注,然后将这些标注转换为注记,最后在地图服务中使用这些注记。
Maplex 可能会占用大量内存。在使用 Maplex 构建整个缓存之前,请在创建切片的同时构建测试缓存并检查系统的内存使用量。如果内存使用量接近计算机的限值,则考虑禁用 Maplex。如果无法禁用 Maplex,则可能导致在创建切片时出现不稳定状况和崩溃。
标注会保留在单独的缓存中吗?
矢量要素及其相关联的标注通常位于同一个缓存中。有充足的理由允许用户关闭标注的情况是不多见的;不过,如果您确实需要这么做,将要素中的标注分离出来并将它们放到单独的缓存中会是一个不错的选择。
通常,标注不应位于影像的缓存中。这将允许单独使用影像或在其他应用程序中重用影像。同具有多个标签叠加缓存的单一影像缓存相比,将不同的标注集“烧录至”切片中的多个影像缓存所占用的累积磁盘空间更多。