Skip To Content

地图制作注意事项

要使地图服务在 Web 上可用,您需要在 ArcMap 中制作地图并将其发布到 ArcGIS Server 站点,并且之后在客户端应用程序中使用所生成的地图服务。使用地图服务执行各种操作之前,需要在地图制作的最初阶段做一些必要的准备工作。本主题涵盖了在制作一幅计划发布到站点的地图时需要考虑的一些问题。

一般性提示

下面的提示对于所有将要发布到 ArcGIS Server 站点的地图文档都很重要:

  • 避免使用数据框或图层名称中的非字母数字字符(空格除外)。发布服务时,数据框和图层名称有时会用于 URL、缓存文件夹名称和 Web 服务请求参数中。非字母数字字符在这些情况下可能不会得到正确解释。通过 OGC 规范发布服务时要格外谨慎。例如,查看禁止与 WMS 服务一起使用的字符列表的 WMS 服务的可用属性

  • 从文档属性中移除敏感信息。ArcGIS Server 包含服务目录,用户可以浏览服务器中的内容并获取服务的元数据信息。即使您想要您的服务通过服务目录公开显示(默认配置),也不排除地图文档中仍包含一些希望隐藏的敏感信息。要查看可见信息,请在 ArcMap 中打开地图文档,然后从主菜单中选择文件 > 地图文档属性。发布地图时,您可移除不希望通过服务编辑器显示的任何作者用户名、注释或其他信息。应根据需要编辑信息以反映地图服务的目的和目标受众。

  • 从地图文档中移除所有地图服务图层。不允许发布带有嵌入式服务图层的地图文档。

  • 应明确设置一种数据框背景色,而不要保持默认的空背景色不变。地图服务会将背景色视为透明,因此应避免选择在地图中其他位置出现的颜色。要避免地图的白色区域变为透明,可将背景色设置为接近白色(例如:RGB 254、255、255)。

    您可以在数据框属性 对话框的框架选项卡中设置背景色。

设置地图文档以保存图层和表 ID。

在 ArcGIS Server 的较早版本中,更改源地图文档后不会保留地图和要素服务的图层 ID 和表 ID。因此,需要您更新使用图层和表的所有客户端应用程序来使用更新的 ID。为避免更新客户端应用程序,建议按下述方法配置地图文档以保存图层 ID 和表 ID。

  1. 在 ArcMap 中打开源地图文档 (MXD)。
  2. 右键单击所需数据框名称并选择属性
  3. 数据框属性对话框中,单击常规并开启允许对地图服务发布分配唯一的数字 ID选项。
  4. 单击确定。ArcMap 将自动向数据框中的各个图层和表分配顺序 ID。
  5. 如果需要,可向图层和表分配您自己的自定义 ID:
    1. 右键单击想要向其中分配自定义 ID 的图层或表,然后选择属性
    2. 图层属性对话框中,单击常规并分配图层 ID 字段中需要的整数。
      注:

      ID 可以是任意整数,整数之间可存在间隔不必连续。

    3. 单击确定
    4. 针对每个所需图层或表重复上述分步。
  6. 发布地图文档或覆盖现有服务。

图层 ID 现已在发布后保存。更改源地图文档后不再需要更改客户端应用程序。

能否缓存地图以提高性能?

如果地图中包含的数据不大可能发生变化,则应考虑缓存该地图以提高性能。缓存地图时,将在某些比例级别上创建一组经过预渲染的地图图像。而实际的缓存过程会在地图作为服务发布后开始执行。但是,如果事先已计划要缓存地图,则会影响地图的制作过程。最好将地图制作为在所有要缓存的比例下均显示良好。您可以使用任何不会影响性能的制图工具,因为这些缓存切片只是一系列数据图片;缓存创建完成后,您便不会用到实际的渲染和标注引擎。

如果无法缓存地图,则渲染和标注引擎将影响地图服务的性能。有关详细信息,请参阅什么是地图缓存?

针对未缓存地图的有关性能方面的提示

只要条件合适,就应该创建地图缓存。但是,如果其中的大量数据都需要频繁更改,则创建和维护地图缓存并不切实可行。这种情况下,您可以按照下面的提示来提高地图的性能。在发布地图文档的过程中,您将有机会使用服务编辑器来分析地图。这可帮助您快速确定提高地图文档性能的方法。

  • 对数据图层设置按比例渲染 - 使用按比例渲染,可确保地图缩小时不会绘制那些不必要的图层。数据密集的图层或详细的图层则仅在地图放大到某一较大比例时才会渲染。

  • 移除未使用的图层和数据框 - 检查页面布局和数据视图以确保地图文档中未包含与地图用途无关的数据框和图层。例如,如果页面布局视图中包含的数据框并不会显示在任何使用该服务的应用程序中,则请移除这些数据框。

  • 恰当使用定义查询 - 定义查询可作为一个限制地图数据量的过滤器,从而加快地图的绘制速度。例如,如果正在创建的是某个州的地图而要素类中包含的是整个国家的数据,则可通过定义查询功能只显示落在州边界范围之内的那些要素。请注意,一些复杂的查询也可能对性能产生负面影响。

  • 简化图层符号系统 - 绘制复杂符号远比绘制简单符号耗用的时间多。因此请尽量使用简单的线符号和填充符号,避免使用包含多个图层和复杂的虚线、混列线或轮廓线样式的符号系统。高速公路盾形路牌符号也可能会减慢绘制速度。

    • 使用图片填充符号时,相比 BMP 文件,使用 EMF 文件可以更好地提高性能。

    • 用于简化地图中部分符号的一种简单方法是使用 ESRI_Optimized 样式。这种样式中包含旨在提高性能但又与默认 Esri 样式中对应符号的外观类似的线符号和填充符号。了解如何使用这种样式的信息,请参阅 ArcGIS 帮助文档中的组织样式内容

    • 如果正在创建的是一个缓存地图服务,简化地图并不会影响成品地图的传输速度,而只会影响缓存的创建速度。如果缓存构建所花费的时间是合理的,就不必再考虑进行符号简化了。

  • 使用注记替代标注 - 由于标注的显示需要计算机判断放置策略,因此通常选择使用注记图层会节省时间。

  • 简化标注 - 如果地图中包含标注,则需要谨慎使用标注和要素冲突权重。另外,晕圈、偏移及其他标注效果也会减慢绘制速度。

  • 为标注设置按比例渲染 - 地图被缩小时,会要求绘制更多的标注,从而花费更多的时间。因此,请检查地图文档并确定是否有一些标注不需要在较小的比例下显示。

  • 数据和地图使用同一坐标系 - 如果源数据和地图文档使用了不同的坐标系,则数据必然会进行动态投影,从而降低显示性能。要获得最佳性能,建议数据和地图文档使用同一坐标系。如果该操作无法实现,请确保对需要动态投影的图层应用恰当的地理(坐标)变换。

  • 调整浏览器将对其缓存中的响应使用的时间 - 在 Web 浏览器中查看地图时,服务器中的地图影像响应由浏览器进行缓存,并在一段时间之内重复使用。您可以考虑根据地图服务及其相关数据在应用程序中的使用方式来调整浏览器缓存中的响应将使用多长时间。有关完整的详细信息,请参阅下面的提高地图服务的显示性能部分。

提高地图服务的显示性能

当客户端向 ArcGIS Server 发送请求以显示地图服务时,服务器上的响应通常由浏览器进行缓存,并在一段时间之内重复使用。此行为有助于 ArcGIS Server 获得最理想的地图服务显示性能。但您可以考虑根据地图服务及其相关数据在应用程序中的使用方式来调整浏览器缓存中的响应将使用多长时间。通过将名为 cacheControlMaxAge 的属性添加到服务的 JavaScript 对象标记法 (JSON),可实现上述操作。

cacheControlMaxAge 属性的使用方式

ArcGIS Server 地图服务响应包括实体标签 (ETag) 和缓存控制头。ETag 头值是响应的唯一标识符。缓存控制头具有一个最长期限值,该值可向浏览器提供有关浏览器缓存中响应可供重复使用的最大时段的信息。该值由 cacheControlMaxAge 属性控制。

如果重复请求且尚未超过缓存的最长期限,则浏览器将使用缓存的响应而不会将请求发送到服务器。如果已超过最长期限,则浏览器必须将请求发送到服务器,并通过与其缓存中响应相对应的相关 ETag 值设置 IF-NONE-MATCH 头。ArcGIS Server 将评估请求,并使用 ETag 值来确定响应是否更改。如果服务器的响应与浏览器中的副本不同,则服务器会将一个全新的响应发送到浏览器。如果响应与浏览器中的副本一致,则服务器将提示浏览器继续使用其缓存中的响应。

定义 cacheControlMaxAge 属性值

ArcGIS Server 管理员可定义 cacheControlMaxAge 属性,以指定允许浏览器使用缓存响应的时长。通过减少 ArcGIS Server 发送完整响应的需要,可提高浏览器缓存的效率,有助于优化应用程序,从而节省网络带宽。

地图服务的默认值都是 0。这表示浏览器始终重新发送请求,且 ArcGIS Server 将处理请求并在内容发生更改的情况下向浏览器发送完整的响应。此值适用于大多数应用程序。

对于含有频繁更改的数据集或符号系统的地图服务,建议使用 5 分钟(300 秒)等值。如果应用程序含有动画或时间感知型数据,则应考虑增加该值从而为应用程序提供更为流畅的动画体验。

要将 cacheControlMaxAge 属性添加到服务并指定其默认值,请执行以下操作:

  1. 在 web 浏览器中打开 ArcGIS Server 管理员目录,然后以具有管理员权限的用户身份进行登录。URL 地址格式为 http://gisserver.domain.com:6080/arcgis/admin
  2. 单击服务,然后从服务列表中选择要修改的地图服务。如果此处没有列出您的服务,则可能在根文件夹下的目录中列出。
  3. 服务 - <服务名称> (<服务类型>) 页面,滚动至底部然后单击编辑
  4. 服务属性对话框中,找到服务 JSON 的 "properties" 部分。
  5. cacheControlMaxAge 属性添加到该部分,然后指定属性值(以秒为单位),如:
    "properties": {
      "cacheControlMaxAge": "300",
  6. 单击保存编辑
  7. 服务 - <服务名称>(<服务类型>)页面,验证属性部分中是否显示 cacheControlMaxAge 属性以及您为该属性指定的值。

是否要通过此地图在服务器上执行网络分析?

如果要使用此地图在服务器上执行网络分析,则需要添加一个引用某网络数据集的网络分析图层。地图服务发布后,便可启用 Network Analysis 功能。这将创建一个 Web 服务,用于在地图中执行各种网络分析任务。