教程:发布 KML 服务

复杂性:中级 数据要求:使用自备的数据

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

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

在 ArcGlobe 和 ArcMap 中准备数据

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

步骤:
  1. 启动 ArcGlobe 并添加一个要素类。
  2. 内容列表中,右键单击相应的图层,然后单击属性
  3. 单击 Globe 拉伸选项卡。
  4. 选中拉伸图层中的要素不绘制拉伸面的底面。也可选择通过将其添加到各要素的基本高度的方式应用拉伸。
    ArcGlobe 中的 Globe 拉伸选项卡
  5. 设置拉伸值或表达式。这可确定要素从地图中“凸出”的距离。如果需要通过其他方式帮助构建表达式,您可以打开表达式构建器(使用类似袖珍计算器的按钮)。在本例中,面要素的拉伸方式是将 POP04_SQMI 属性值乘以 250(仅是为外观选择的一个任意值),再将该值添加到该要素的基本高度。您可能需要试用表达式后,才能得到所需要的外观。
    ArcGlobe 中拉伸的要素
  6. 设置该图层的拉伸并且看起来像三维图层之后,右键单击该图层并选择另存为图层文件。将其保存在您的 ArcGIS Server SOC 帐户有权读取数据的磁盘位置上。
  7. 由于已确定了数据的 3D 属性,因此现在可以设置 2D 图层属性。打开 ArcMap 并单击添加数据
  8. 浏览至刚从 ArcGlobe 保存的图层文件 (.lyr),并单击添加。该图层在 ArcMap 中不会以 3D 模式显示,但当您在 Google 地球或 ArcGIS Explorer 中查看地图时,该图层将以 3D 模式显示。
  9. 右键单击该图层并从快捷菜单中选择属性来设置图层属性。
  10. 单击常规选项卡,编辑图层的比例可变选项,然后输入描述。该描述将用于在 KML 客户端显示的 KML 图层描述,并且可以包含任意有效的 HTML。
    在“ArcMap 图层属性”对话框上的“常规”选项卡
  11. 单击显示选项卡,并根据需要更改图层的透明度。较高的透明度有助于用户查看地图中下面的内容。
    在“ArcMap 图层属性”对话框上的“显示”选项卡
  12. 单击符号系统选项卡,并根据需要改变渲染属性。细微的梯度填充有助于您区分相邻的 3D 要素。
    在“ArcMap 图层属性”对话框上的“符号系统”选项卡
  13. 单击字段选项卡,并设置通过地图服务要访问的字段。您也可使用要素类中任意字段的 KMLSnippet 别名。在 KML 客户端的内容列表中,您改为使用 KMLSnippet 别名的字段值将显示在各要素图标的下方。KMLSnippet 别名字段的值可包含任意有效的 HTML。
    在“ArcMap 图层属性”对话框上的“字段”选项卡
  14. 另外,也可设置您要应用于数据中的任意定义查询或连接和关联。分别使用定义查询连接和关联选项卡进行此操作。
  15. 另外,也可单击标注选项卡,指定您要应用的标注。KML 将使用点要素的颜色、大小和标注表达式。KML 不支持线或多边形的标注。
  16. 单击 HTML 弹出窗口选项卡,并选中使用 HTML 弹出窗口工具显示此图层的内容。然后选择一个格式选项。这确定了各要素的 KML 描述,即当您单击某要素时在信息性的气球中出现的内容。您可使用 HTML、JavaScript 和样式表使该描述看起来更有吸引力,或者,如果您仅是要试验,您可选择默认的选项来将 HTML 格式作为可视字段的表格显示。
    在“ArcMap 图层属性”对话框上的“HTML 弹出窗口”选项卡
  17. 单击确定,退出图层属性,然后单击文件 > 保存,保存您的地图文档 (.mxd)。

发布 KML 服务

完成地图文档之后,您就需要将其作为一个 ArcGIS Server 地图服务进行发布。只要启用了地图服务的 KML 功能,它就可生成 KML。默认情况下,启用 KML 功能。

以下步骤显示了如何发布 ArcMap 目录 窗口中的服务。如果您想使用“管理器”来创建该服务,请遵循在管理器中将 GIS 资源发布到服务器中的相应步骤。

步骤:
  1. 仍然在 ArcMap 中,单击窗口 > 目录
  2. 在目录树中,浏览至要发布的地图文档 (.mxd)。请注意,您也可选择将地图服务定义(.msd 文件)作为 KML 来显示。
  3. 右键单击地图文档,然后选择发布到 ArcGIS Server
  4. 为您的服务指定一个名称,并选择您要该服务发布到的文件夹。然后,单击下一步
  5. 在第二个发布到 ArcGIS Server 的向导页面上,请注意 KML 功能已启用。将其保持为选中状态,单击下一步
  6. 在第三个向导页面中,查看要创建内容的摘要,然后单击发布
  7. 您的服务现已发布,您可以通过展开目录树的 GIS 服务器结点并将该服务拖动到 ArcMap 内容列表中进行预览。

配置 KML 服务的属性

发布 KML 服务后,您可能想要编辑其默认属性。为此,请执行以下步骤:

步骤:
  1. 在目录树中,右键单击此服务,然后单击停止
  2. 右键单击此服务,然后单击服务属性
  3. 单击服务能力选项卡,然后单击 KML(注意不要取消选中该框)。
  4. 在面板下部编辑各个属性。
    • 选择由 KML 服务返回 KML 的限制方式。如果该服务主要用于 Google 地图或 Google 移动,则 KML 兼容模式选项允许您选择仅包含集中的功能子集。这样可以提高性能。
    • 选择限制由 KML 服务、输出 DPI 及输出图像大小返回的要素的方式。
    • 使用使用 NetworkLinkControl 标签选项可限制客户端请求服务的时间间隔。
  5. 单击“确定”,关闭服务属性对话框
  6. 在目录树中,右键单击此服务,然后单击重新启动

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

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

步骤:
  1. 使用 Web 浏览器导航到 ArcGIS 服务目录,它的 URL 是 http://<ArcGIS Server 名称>/<ArcGIS Server 实例名称>/rest/services。示例:http://MyServer/ArcGIS/rest/services。
  2. 请注意链接在以下位置查看覆盖区:Google 地球,它显示有地理范围的所有服务的覆盖区。
  3. 服务目录 中,单击相应的链接转到新发布的服务。
  4. 单击查看范围:Google 地球链接,打开一个显示您的服务的地面叠加层的 KMZ 文档。或者,如果您的服务已进行缓存,则将看到启用 KML 区域的超级叠加层。请注意,该链接不返回矢量。
  5. 返回到服务目录,单击您的服务中的任意图层。
  6. 在您的页面底部,单击查询链接。这可打开一个表单,您可在其中指定许多参数来查询一个图层。最后一个选项是您想要的响应格式。在此处选择 KML将显示一个包含查询结果的 KMZ 文档。
  7. 导航回到服务目录 中的服务页面。
  8. 在您的页面底部,单击生成 KML。该链接会显示一个 Web 表单,您可在其中选择在 KML 中返回的图层。您也可通过选择选项矢量图层作为矢量数据,栅格图层作为图像,从您的服务中动态选择返回矢量。

发布一个网络链接

通过发布 KML 网络链接,您可以以一种易用的格式在您的服务器上使用 KML。您将在管理器中发布网络链接。然后,您就能在 ArcGIS Explorer 或 Google 地球中添加网络链接。

步骤:
  1. 登录 ArcGIS Server 管理器。
  2. 单击服务选项卡,然后单击 KML 网络链接
  3. 单击创建网络链接
  4. 输入 KML 的名称,并可以选择输入 KML 的简要描述和详细描述。然后,单击下一步
  5. 地图服务下拉列表中,选择刚发布的地图服务。也选择您要通过 KML 网络链接显示的图层。
  6. 选择绘制矢量图层作为矢量数据,栅格图层作为图像的选项。因为拉伸的要素为矢量,所以您需要选择该选项。否则,您将看到一个平面的栅格化图像。单击下一步
  7. 在此向导的最后一页,您可根据需要调整刷新视图主机名参数。此外,您可选择抑制默认的 KML 代码片段行为,该行为会将描述的前两行添加到内容列表中的各个要素。在本教程中,可接受各个默认设置。
  8. 单击完成创建 KML 网络链接。当您返回到管理器中的 KML 网络链接 页面时,您将看到指向新网络链接的 URL(例如:http://myServer/ArcGIS/kml/networklink1.kmz)。单击或复制并粘贴该 URL,将您的 KML 网络链接添加到 Google 地球或 ArcGIS Explorer。

3/7/2012