Skip To Content

教程:发布 KML 服务

复杂程度: 中级数据要求: 使用自备的数据目标: 创建地图并将其作为 KML 服务发布到 ArcGIS Server。

通过发布启用了 KML 功能的 ArcGIS Server 地图服务,您可以在 Web 上动态提供 KML。这样,客户就可以连接到地图服务并请求某特定地理区域的 KML 数据。该 KML 可以通过 REST 的“生成地图”、“生成 KML”和“查询”操作来显示;或者通过 ArcGIS 服务目录中 Google 地球中的视图链接来显示;也可以通过将正确配置的 URL 嵌入到服务的 KML 网络链接文档来显示。

本教程可引导您完成使用 3D 拉伸要素创建 KML 服务的过程。首先,您将在 ArcGlobe 中创建一个含有 3D 拉伸属性的图层文件。然后,将该图层添加到 ArcMap 中,设置图层的符号系统,并在您的 KML 中配置与要素关联的描述性文本。接下来,要将该地图发布为一个启用了 KML 功能的服务。最后,在您的服务器上创建一个 KML 网络链接,以便其他用户可轻松访问该 KML。

开始学习本教程前

如果您刚刚安装 ArcGIS Server,则在连接到服务器和发布服务之前,需要完成一些准备工作:

在 ArcGlobe 和 ArcMap 中准备数据

要发布包含 3D 属性(例如 z 偏移或基于属性的拉伸)的要素类,首先,必须编辑 ArcGlobe 中的要素类图层属性,并将其保存为图层文件;然后,将该图层文件添加到 ArcMap 文档中。以下步骤显示了如何应用 ArcGlobe 中的拉伸以及如何保存相应的图层文件并在 ArcMap 中使用。

  1. 启动 ArcGlobe 并添加一个要素类。
  2. 内容列表中,右键单击相应的图层,然后单击属性
  3. 单击 Globe 拉伸选项卡。
  4. 选中拉伸图层中的要素不绘制拉伸面的底面。也可选择通过将其添加到各要素的基本高度的方式应用拉伸。
  5. 在 ArcGlobe 中单击 Globe 拉伸选项卡。
  6. 设置拉伸值或表达式。这可确定要素从地图中凸出的距离。如果需要通过其他方式帮助构建表达式,则可打开表达式构建器 计算器。在本例中,面要素的拉伸方式是将 POP10_SQMI 属性值乘以 250 (POP10_SQMI *250),再将该值添加到该要素的基本高度。这仅是为外观选择的一个任意值。您可能需要尝试多种表达式,而后才能得到所需要的外观。

    ArcGlobe 中拉伸的要素

  7. 设置该图层的拉伸属性并且当它看起来是一个三维图层之后,右键单击该图层并选择另存为图层文件
  8. 由于已确定了数据的 3D 属性,因此接下来就可以设置其 2D 图层属性。打开 ArcMap 并单击添加数据
  9. 浏览至刚从 ArcGlobe 中保存的图层文件 (.lyr),并单击添加。该图层在 ArcMap 中不会以 3D 模式显示,但当您在 Google 地球或 ArcGIS Explorer 中查看地图时,该图层则会以 3D 模式进行显示。
  10. 右键单击该图层并从快捷菜单中选择属性来设置图层的属性信息。
  11. 单击常规选项卡,设置图层的比例范围,然后输入描述信息。该描述将用于在 KML 客户端处显示的 KML 图层描述,而且,其中也可以包含任意有效的 HTML 要素。
  12. 或者单击显示选项卡,然后更改图层的透明度。较高的透明度有助于用户查看底图下面的其他内容。
  13. 或者单击符号系统选项卡并更改渲染属性。细微的渐变填充有助于您区分相邻的 3D 要素。
  14. 单击字段选项卡,并设置通过地图服务要访问的字段。您也可更改要素类中的任何字段使其使用 KMLSnippet 别名。在 KML 客户端的内容列表中,您改为使用 KMLSnippet 别名的字段值将显示在各要素图标的下方。
  15. 另外,也可设置您要应用于数据中的任意定义查询或连接和关联。分别使用定义查询连接和关联选项卡进行此操作。
  16. 另外,也可单击标注选项卡,指定您要应用的标注。KML 将使用点要素的颜色、大小和标注表达式。KML 不支持线或面的标注。
  17. 单击 HTML 弹出窗口选项卡,并选中使用 HTML 弹出窗口工具显示此图层的内容。然后选择一个格式选项。这确定了各要素的 KML 描述,即当您单击某要素时在信息气球中出现的内容。您可使用 HTML、JavaScript 和样式表使该描述看起来更有吸引力,或者,如果您仅仅要做一个尝试,则可选择默认的选项来将 HTML 格式作为可视字段的表格显示。
  18. 单击确定,退出图层的属性设置,然后单击文件 > 保存,保存您的地图文档。

发布 KML 服务

既然已完成地图文档,所以需要将其发布为地图服务。只要启用了地图服务的 KML 功能,它就可生成 KML。默认情况下,KML 功能为启用状态。

  1. 在 ArcMap 中,从主菜单中选择文件 > 共享为 > 服务
  2. 共享为服务 窗口中,选择发布服务。单击下一步
  3. 发布服务对话框中,单击连接到 ArcGIS Server 添加 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. 还可以在发布服务 窗口中,输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。单击下一步
  10. 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。也可将服务组织到根文件夹下的子文件夹中。选择要将服务发布到其中的目标文件夹,或创建一个新文件夹存储服务。单击继续
  11. 服务编辑器 随即显示。您将使用服务编辑器 选择用户可对 KML 服务执行的操作,还可对服务器显示 KML 服务的方式进行精细的控制。单击服务能力选项卡。
  12. 默认情况下,地图和 KML 两项功能自动启用。在服务编辑器 的左侧窗格中,单击 KML,然后编辑以下属性:
    • 选择允许对 KML 服务进行的操作。有关各操作的说明,请参阅 ArcGIS Server 中的 KML 支持
    • 选择由 KML 服务所返回 KML 的限制方式。如果该服务主要用于 Google 地球、Google 地图或 Google 移动,则 KML 兼容模式选项允许您选择仅包含其中的功能子集。这样可以提高性能。
    • 选择由 KML 服务所返回要素的限制方式、输出图像大小和输出客户端 DPI。
    • 使用使用 NetworkLinkControl 标签选项可限制客户端请求服务的时间间隔。
    提示:

    有关如何最好地配置 KML 服务以进行部署的信息,请参阅调整和配置服务

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

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

  14. 准备 窗口中修复任何错误 错误;必须在发布前完成此操作。另外,您还可以修复警告和通知消息,以进一步完善 KML 服务的性能和外观。有关解决这些问题的详细信息,请参阅分析 GIS 资源
    注:

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

  15. 还可以在服务编辑器 中,单击预览 预览。这样您便可以了解在 Web 上查看地图时地图的外观。有关详细信息,请参阅预览地图
  16. 修复了地图文档中的错误后,请单击发布 发布
  17. 您的服务现已发布,您可以通过展开目录 窗口的 GIS 服务器结点并将该服务拖动到 ArcMap 内容列表中进行预览。

浏览显示在“ArcGIS Server 服务目录”中的 REST KML 操作

默认情况下,每个 ArcGIS Server 显示一个“服务目录”,它允许您使用 REST 来浏览服务并与服务进行交互。您可使用“服务目录”来练习与您 KML 服务进行交互。

  1. 打开 Web 浏览器并导航到服务目录,其 URL 通常为 http://gisserver.domain.com:6080/arcgis/rest/services
  2. 在服务列表中,单击 KML 服务的名称。如果看不到服务,则服务可能位于文件夹中。
  3. 单击在以下位置处查看:Google 地球链接,打开一个显示您的服务的地面叠加层的 KMZ 文档。或者,如果您的服务已进行缓存,则将看到启用 KML 区域的超级叠加层。请注意,该链接不返回矢量。
  4. 返回到服务目录,单击服务中的任意图层。
  5. 在您的页面底部,单击查询链接。这可打开一个表单,您可在其中指定多个参数来查询一个图层。最后一个选项是您想要的响应格式。选择 KML 作为格式将显示一个包含查询结果的 KMZ 文档。
  6. 导航回到服务目录 中的服务页面。
  7. 在页面底部,单击生成 KML。该链接会显示一个 Web 表单,您可在其中选择在 KML 中返回的图层。您也可通过选择选项矢量图层作为矢量数据,栅格图层作为图像,从您的服务中动态选择返回矢量。

通过地图服务创建网络链接

通过在 ArcGIS Server Manager 中创建 KML 网络链接,您可以以一种易用的格式在您的服务器上使用 KML。然后,您就能在 ArcGIS Explorer、ArcGlobe 或 Google 地球中添加网络链接。

  1. 打开管理器,然后登录。有关此步骤的其他帮助信息,请参阅登录管理器
  2. 单击服务 > KML 网络链接 > 创建网络链接
  3. 指定链接的名称。指定的名称用作文件名并嵌入到网络链接文件的 Name 标签中。
  4. 或者,指定外部主机名
  5. 或者,提供简要描述和详细描述。详细描述中可以包含嵌入的 HTML 标记和 URL。
  6. 或者,指定代码片段行为。默认情况下,代码片段配置为不显示。单击下一步
  7. 地图服务下拉列表中,选择刚发布的地图服务。也选择您要通过 KML 网络链接显示的图层。
  8. 选择绘制矢量图层作为矢量数据,栅格图层作为图像的选项。因为拉伸的要素为矢量,所以您需要选择该选项。否则,您将看到一个平面的栅格化图像。
  9. 或者,将默认兼容模式设置为特定的 Google 客户端。
  10. 如果需要,调整基于视图的刷新视图边界比例基于时间的刷新参数。此外,还可选择让浏览器在刷新后立即转到视图。对于本教程,默认选项已经足够。单击下一步
  11. 或者,根据期望的网络链接显示方式设置纬度经度范围标题倾斜度参数。对于本教程,默认选项已经足够。
  12. 单击创建创建 KML 网络链接。

当您返回到管理器中的 KML 网络链接模块时,您将看到指向新网络链接的 URL(例如,http://gisserver.domain.com:6080/arcgis/kml/networklink01.kmz)。单击或复制并粘贴该 URL,将 KML 网络链接添加到 Explorer for ArcGIS、ArcGlobe、Google 地球、Google 地图或 Google 移动。