教程:创建缓存地图服务

复杂程度: 中级 数据要求: 使用自己的数据 目标: 创建客户端应用程序可使用的缓存地图服务。

创建快速地图服务的最佳方式就是对其进行缓存。对地图服务进行缓存时,服务器会以您定义和保存图像的一组比例级别来绘制地图。当服务器接收到对地图的请求时,返回缓存图像中的地图会比重新绘制地图更加快捷。

缓存适用于不经常更改的底图和地图。对于偶尔更改的地图,可通过工具来更新缓存。要获得最佳性能,应当缓存尽可能多的图层。制作两张地图并将适合缓存的图层与不能进行缓存的图层分开,您会发现这非常有用。例如,可以由底图图层创建缓存的地图服务,而由实时更新的图层或者因分析或建模而更改的图层创建非缓存地图服务。

构建缓存之前,您需要执行细致的设计和创作工作,从而创建有效的地图缓存。本教程引导您完成规划和使用 ArcGIS Online/Bing 地图/Google 地图切片方案创作要缓存的地图的过程。然后发布地图服务,指定发布的同时应构建缓存。最后,将在客户端应用程序中测试缓存。

本教程是一次练习,目的在于帮助您为组织中将来的缓存工作做好准备。本教程包含三个主要部分:

开始学习本教程前

如果您刚刚安装了 ArcGIS Server,那么在 ArcMap 中连接到服务器并发布服务之前,需要完成一些准备工作:

创作地图

对地图进行缓存时,服务器会以您选择的一组比例来绘制地图。地图绘制完成后,除非重建或更新缓存,否则无法更改它的显示方式。这意味着需要特别注意以下两点:

在本教程中,假设您所在组织使用 ArcGIS Online/Bing 地图/Google 地图切片方案。要开始此过程,请执行以下步骤。

指定坐标系

设计该地图时,设置数据框以使用 WGS 1984 Web Mercator (Auxiliary Sphere) 坐标系,该坐标系也是 ArcGIS Online、Google 地图和 Bing 地图所使用的坐标系。

步骤:
  1. 启动 ArcMap 并打开一个新的空地图文档。
  2. 在 ArcMap 内容列表中,右键单击数据框名称(默认为图层),然后选择属性
  3. 单击坐标系选项卡。
  4. 单击投影坐标系 > World > WGS 1984 Web Mercator (Auxiliary Sphere)
  5. 单击确定
注注:

上述步骤不是必须得执行,因为如果 ArcGIS 检测到您正在尝试使用 ArcGIS Online/Bing 地图/Google 地图切片方案创建地图缓存,ArcGIS 会重新将数据动态投影到 WGS 1984 Web Mercator (Auxiliary Sphere)。这里包括这些步骤旨在使您可以在设计地图时考虑此坐标系。

设置 ArcMap 以使用 ArcGIS Online、Bing 地图和 Google 地图所使用的比例

由于您所在组织使用 ArcGIS Online、Google 地图和 Bing 地图采用的切片方案,因此,只能采用这些比例设计地图。可以通过执行以下操作,将这些比例加载到 ArcMap 的比例下拉列表中:

步骤:
  1. 在“标准”工具条上,单击比例下拉列表,然后选择自定义此列表
  2. 比例设置 窗口中,单击加载,然后选择 ArcGIS Online/Bing 地图/Google 地图
  3. 启用复选框缩放时仅显示这些比例。在这种情况下,您仅能在 ArcGIS Online/Bing 地图/Google 地图比例值下查看图层和要素类。创作要在这些比例下缓存的地图时,启用此选项将十分有用。
  4. 单击确定应用更改。此时,您将可以查看这些流行的 Web 地图服务所采用的比例,并使用下拉列表在这些比例之间轻松跳转。

设计地图

接下来该进行真正的地图设计工作了。缓存地图的一个优点是,在设计阶段,您可以随时使用所有制图工具,而不用担心它们对性能的影响。花点时间来让地图看起来美观一些,因为一旦缓存创建完成,不重新创建或更新缓存就无法进行更改。缓存用户也不能更改符号系统,因为他们仅是在查看存储于服务器上的预先存在的地图图像。

由于您正在设计与 ArcGIS Online、Bing 地图和 Google 地图采用的切片方案匹配的地图,所以最好在各比例值下设计地图。这对栅格数据来说更加简单,因为更改比例时,ArcMap 会对数据进行一些重采样。然而,必须使用相同大小的点和线在每个比例上对矢量数据进行符号化,并且需要更多一点精力来防止地图看起来过于凌乱或过于稀疏。以下步骤介绍,在地图包含矢量数据的情况下,可以使用的一种设计策略。

步骤:
  1. 仍然在 ArcMap 中,添加数据集并缩小至最远(最小)比例。如有必要,纠正投影问题。所有数据集都需要使用 WGS 1984 Web Mercator (Auxiliary Sphere) 投影,这样才能正确缓存。
  2. 为该比例设置图层的符号系统和标注。
    提示提示:

    您可能需要设置一个定义查询,以便在该比例上仅较少要素可见。例如,如果有一个城市图层,您可以设置一个定义查询,将显示范围限制为人口大于 20,000 的城市。

  3. 放大至下一个最接近的比例,然后为该比例设置图层的符号系统和标注。
    提示提示:

    如果想在已经符号化的图层上,将符号、标注或定义查询更改为不同比例,请向地图添加图层的另一个副本。为此,在 ArcMap 内容列表中右键单击该图层,然后单击复制。然后右键单击数据框名称,并单击粘贴图层

  4. 创建图层组以跟踪图层的副本。针对每个比例制作一个图层组是最简便的。这样,只需对组来设置比例可变选项,而不用为每个单独图层进行设置。甚至可以将比例包含在名称中。
  5. 设置每个图层组的比例范围,以使在每个已缓存比例下只有一个图层可见。针对每个缓存比例配置带容差的比例范围。例如,如果一个图层组将在 1:577,791 比例下进行缓存,您可以将图层设置为仅在缩小比例超过 1:866,686 且放大比例超过 1:433,343 时才是可见的。
  6. 继续缩放至每个连续比例并适当进行符号化,直至完成比例列表中的所有比例。
  7. 保存地图。您已经为发布地图准备就绪。

发布地图服务

教程的本阶段将引导您完成使用 ArcMap 将地图文档发布到 ArcGIS Server 的整个过程。在此过程中,您将定义地图缓存的方案并分析地图文档以保证性能。您将指定要在发布时创建缓存。要开始此过程,请执行以下步骤。

步骤:
  1. 在 ArcMap 中打开地图文档,从主菜单中选择文件 > 共享为 > 服务
  2. 共享为服务 窗口中,选择发布服务。单击下一步
  3. 发布服务对话框中,单击连接到 ArcGIS Server 添加 ArcGIS Server 以创建一个到服务器的新连接。
  4. 添加 ArcGIS Server 窗口中,选择发布 GIS 服务。单击下一步
  5. 对于服务器 URL,输入要连接的 ArcGIS Server 站点的 URL。例如,http://gisserver.domain.com:6080/arcgis
  6. 服务器类型下拉列表中选择 ArcGIS Server
  7. 在发布过程中,将创建服务定义文件并将其临时存储到本地磁盘上。发布过程完成后,服务定义将上传到服务器并删除本地文件。考虑到本教程的目的,保留默认的过渡文件夹。
  8. 输入对 ArcGIS Server 至少具有发布者权限的用户名密码。如果没有考虑安全的问题而建立用户和角色,一种选择是使用创建站点时定义的主站点管理员帐户。保留复选框处于选中状态以保存用户名和密码。然后单击完成
  9. 还可以在发布服务 窗口中,输入新的服务名称。单击下一步
  10. 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。也可将服务组织到根文件夹下的子文件夹中。选择要将服务发布到其中的目标文件夹,或创建一个新文件夹存储服务。单击继续
  11. 服务编辑器 随即显示。您将使用服务编辑器 选择用户可对缓存的地图服务执行的操作,定义缓存方案,还可对服务器显示服务的方式进行精细的控制。单击缓存选项卡。
  12. 缓存 选项卡中,选择使用缓存中的切片绘制地图服务。
  13. 切片方案下拉列表中,选择 ArcGIS Online/Bing 地图/Google 地图
  14. 检查估计缓存大小。然后降低(左移)细节层次栏中的最高缓存级别,直到估计缓存大小低于 50 MB 为止。这样可确保近似测试缓存大小适合本教程。
  15. 考虑到本教程的目的,保留所有其他默认设置。请注意,您接受的默认设置之一是发布服务时自动构建缓存。对于较大缓存,您可能想要在其他时间(例如晚上或周末)手动构建缓存。
    提示提示:

    构建生产缓存时,还应检查和调整许多其他缓存设置。有关如何使用服务编辑器 选择地图缓存属性的详细信息,请参阅可用的地图缓存属性

  16. 单击分析 分析。该操作可用于对地图文档进行检查,看其是否能够发布到服务器。
    提示提示:

    配置地图服务时为获得更多视图区域,请单击服务编辑器 顶部的折叠 折叠 按钮。

  17. 将地图发布为服务之前,必须在准备 窗口中修复任何存在的错误 错误。另外,您还可以修复警告和通知消息,以进一步完善服务的性能和显示。有关解决这些问题的详细信息,请参阅分析 GIS 资源
    注注:

    可将文件夹和地理数据库注册到 ArcGIS Server 站点,从而确保服务器可识别并使用数据。如果继续以下步骤,那么地图文档中所引用的来自取消注册 的文件夹或地理数据库的任何数据都将在发布时复制到服务器。这是一种预防性措施,可确保服务器能够访问服务所使用的所有数据。有关将文件夹或地理数据库注册到 ArcGIS Server 站点的完整说明,请参阅使用 ArcGIS for Desktop 将数据注册到 ArcGIS Server

  18. 还可以在服务编辑器 中,单击预览 预览。这样您便可以了解在 Web 上查看地图时地图的外观。有关详细信息,请参阅预览地图
  19. 修复了地图文档中的错误后,请单击发布 发布

地图服务立即开始发布。发布完成后,服务器开始构建缓存切片并持续操作,直到缓存构建完成为止。

根据最大的比例、服务器的硬件构成、数据的范围以及其他因素,可能需要一些时间来生成缓存。本练习中,如果选取了一些简单的数据集以及很小的地理范围,则缓存可能在一小时内完成。地理处理状态窗口会显示一个进度条,指示已完成多少缓存。

测试缓存

缓存一旦完成,就可以在 Web 应用程序中进行测试,以便确保地图按所需方式显示和执行。这也是验证应用程序能否识别并成功使用切片的好方法。

用于测试的 Web 应用程序可以是单一程序。测试地图缓存的一个好方法是使用 ArcGIS Server 服务目录下的 JavaScript 查看器应用程序。

步骤:
  1. 在 Web 浏览器中,导航到服务目录。例如,http://gisserver.domain.com:6080/arcgis/rest/services
  2. 在服务列表中,单击地图服务。所有地图服务都追加有 (MapServer)。如果服务位于文件夹中,则导航到该文件夹并选择服务。
  3. 显示画面显示服务名称、服务描述和图层列表。单击在下列程序中查看地图:ArcGIS JavaScript
  4. 将显示具有简单 JavaScript Web 应用程序的窗口。缩放级别滑块中的级别与缓存中的比例对应。
  5. 在地图周围平移并缩放至不同级别。在地图中平移和缩放时,您会注意到地图切片非常快速地显示。避免放大时超过首次定义缓存时设置的最高缓存级别,因为您没有在更大的比例下创建切片。

疑难解答

如果没有显示应用程序正在使用缓存,请确保:

如果正在使用 Mozilla Firefox 查看 Web 应用程序,则有一种简单方法来判断您的缓存切片是否正在使用。

步骤:
  1. 右键单击 Web 应用程序,然后选择查看页面信息
  2. 页面信息 窗口中,单击媒体按钮。
  3. 检查列表中显示的图像。如果能看到引用服务器缓存目录的 URL,则可以确信缓存正被使用。

阅读延伸

6/13/2014