地图缓存的相关提示和最佳做法
下面的提示可帮助您获得最佳的地图缓存效果和性能。提示分为以下几个类别:
准备地图文档
- 不要在数据框名称中使用空格或非字母数字字符。当数据框名称包含在 URL 中时,有些 Web 服务器可能无法解释空格或特殊字符。
- 如果可能,在开始设计地图之前,请选择要缓存的比例。在 ArcMap 里创建地图时,将使用这些比例。为便于参考,您可以手动将这些比例加载到 ArcMap 中的比例下拉列表。
- 缓存地图前,请检查源地图文档在要缓存的各个比例下的视觉效果。请确保相应的图层在每个比例下都具有有效的符号系统和标注。如果需要更改基于比例的图层的符号系统,您可以复制该图层并将其粘贴回 ArcMap 的内容列表。设置每个图层副本的比例范围,并对该比例范围进行相应的符号化。
下图所示为已符号化的 ArcMap 文档,该文档可在两种比例下进行查看。该地图的作者将 Interstates 和 Cities 图层复制并粘贴回数据框中,然后分别对每个图层的放大和缩小版本进行符号化。
在缩小版本的地图里,作者通过设置定义查询将可见城市限制为人口超过 5 万的城市。此外,作者还使用细线对 Interstates 图层进行了符号化。
在放大版本的地图里,作者移除了定义查询以便所有城市均可见。不过,作者添加了使用较大字体符号化较大城市的标注规则。另外,作者还改用较粗的制图线符号对 Interstates 进行符号化。
作者对放大和缩小的图层都设置了比例范围,从而确保在任何给定的比例下仅一个图层可见。Rivers and Lakes、County Boundaries、Parks 及 State Background 图层在放大和缩小时都使用相同的符号,因此作者没有创建这些图层的副本。
如果您要创建一个要在多个比例级别下缓存的地图,需要重复该过程并可能会在地图文档内创建许多图层副本。可使用图层组以确保这些图层副本井然有序。
- 在地图文档中使用 Maplex 标注引擎。该引擎可使您在缓存时获得最理想的标注放置效果。
- 将文本符号的 X 偏移值和 Y 偏移值分别设置为 0。使用文本符号偏移可能会导致无意中不时地对标注进行截断。可改为使用标注引擎的偏移功能。
- 明确定义不在地图其他地方使用的数据框背景颜色(建议使用 RGB 254,255,255)。否则,当背景在某些浏览器里被解释为透明时,任何碰巧与背景颜色相同的符号和文本都可能无法进行正确渲染。
您可以在 ArcMap 中明确地设置背景颜色。在支持 PNG 24 透明度的环境中,背景将渲染为透明样式。
- 开始大型缓存作业之前,针对各个比例级别对小块区域进行缓存测试。您可以通过创建一个覆盖测试区域的小型要素类来完成这项任务。然后,创建缓存时,选择基于该要素类边界来创建切片的选项。为该小块区域创建缓存后,请检查切片以确保切片的外观和性能达到预期效果。可通过使用“服务目录”来预览服务进行检查。
创建缓存
- 尽可能使用融合缓存或融合缓存的组合。如果您使用多图层缓存,推荐使用 ArcMap 客户端应用程序。
- 请确保已创建足够的比例。Web 应用程序用户只能在所缓存的比例下查看地图。
当重采样的缓存切片位于比例范围内时,ArcMap 用户可查看这些切片。缓存的比例过少会导致进行大量的重采样,并可能造成要素变形。
- 谨慎选择最接近的比例级别。最接近(最大)比例所需的缓存时间最长,占用的存储空间也最大。放大比例应恰好保证您能够查看所需的地图范围而不必继续增加比例。
- 尽量对组织内创建的所有缓存使用同一切片方案。如果将缓存的服务从另一组织或部门加入到您的 Web 应用程序,最好对切片方案进行匹配或使用双方共有的方案。
- 在 Web 应用程序内创建互相叠加的缓存时,请尽可能使用同一切片方案。您不必在所有相同比例级别下创建所有缓存。不过,您应该尽可能地匹配更多的比例。
在下图中,具有不同比例范围的三个缓存尽量使用相同的比例。用红色圈出的部分即共用的比例:
- 创建缓存切片时,请使用使用要素类更新特定区域选项来避免为不需要的区域创建切片。您可以创建一个新要素类并明确标示出要预先创建的区域。无论何时创建或更新缓存,您都可以使用该要素类。
- 避免使用按需缓存来构建整个缓存。较好的做法是为访问频繁的区域预先创建切片,而仅对访问较少的区域使用按需缓存。
- 运行“管理地图服务器缓存切片”后,请检查地理处理工具消息。在创建切片期间,如果任何 ArcSOC.exe 进程发生崩溃,则丢失区域的比例和范围将写入地理处理工具消息。然后,您可以重新运行这些特定范围的缓存来填入丢失的切片。
图像格式
构建缓存时应尽量匹配切片方案,但您不必匹配图像格式。导入切片方案文件后,您可以在创建缓存之前更改图像格式。可参照以下原则为每个单个缓存选择适当的图像类型:
- 对于颜色多变的基于栅格的底图(如影像),使用 JPEG 格式。
- 对于基于矢量的底图(如街道地图),使用 JPEG 或 PNG 格式。只包含少量简单颜色的地图应使用 PNG。
- 对于叠加服务(如边界和道路网)或任何需要透明背景的要素,使用 PNG。
- 如果地图包含的颜色超过 256 种,则避免使用 PNG 8。
- 如果使用 Internet Explorer 6 查看切片,则避免使用 PNG 24.
维护缓存
- 如果源数据经常变化,您可以定期使用 Python 脚本自动运行管理地图服务器缓存切片地理处理工具。该工具可以更新缓存的所有区域或所选区域。有关示例,请参阅通过地理处理自动创建并更新缓存。
- 如果您拥有非常大的缓存且需要运行 GIS 服务器安装后配置,请注意,后安装可能需要较长的时间来申请对缓存中每个文件的权限。有关解决此问题的方法,请参阅 ESRI 知识库文章 32766。例如,应用补丁包时即需要运行 GIS 服务器安装后配置。
- 创建缓存之后,如果您不想继续将所有源数据存储在服务器上,您可以将一些图层从源地图文档中移除。在地图文档中要至少保留一个图层(建议使用包含一个要素的简单要素类来覆盖地图范围),并使该地图文档仍使用创建缓存时所采用的坐标系。重新启动服务后,您可以将已移除图层的源数据从服务器中安全移除。只要服务名称和缓存名称保持一致,用户在查看服务时就仍可以看见缓存。
请记住,如果使用此方法,用户在查询服务时将不会得到任何有意义的结果。如果想保留一些可查询的图层,您应将其保留在地图文档中,并将这些图层的源数据保留在服务器上。