教程:发布 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 中使用的相应图层文件。
- 启动 ArcGlobe 并添加一个要素类。
- 在内容列表中,右键单击相应的图层,然后单击属性。
- 单击 Globe 拉伸选项卡。
-
选中拉伸图层中的要素和不绘制拉伸面的底面。也可选择通过将其添加到各要素的基本高度的方式应用拉伸。
-
设置拉伸值或表达式。这可确定要素从地图中“凸出”的距离。如果需要通过其他方式帮助构建表达式,您可以打开表达式构建器(使用类似袖珍计算器的按钮)。在本例中,面要素的拉伸方式是将 POP04_SQMI 属性值乘以 250(仅是为外观选择的一个任意值),再将该值添加到该要素的基本高度。您可能需要试用表达式后,才能得到所需要的外观。
- 设置该图层的拉伸并且看起来像三维图层之后,右键单击该图层并选择另存为图层文件。将其保存在您的 ArcGIS Server SOC 帐户有权读取数据的磁盘位置上。
- 由于已确定了数据的 3D 属性,因此现在可以设置 2D 图层属性。打开 ArcMap 并单击添加数据。
- 浏览至刚从 ArcGlobe 保存的图层文件 (.lyr),并单击添加。该图层在 ArcMap 中不会以 3D 模式显示,但当您在 Google 地球或 ArcGIS Explorer 中查看地图时,该图层将以 3D 模式显示。
- 右键单击该图层并从快捷菜单中选择属性来设置图层属性。
-
单击常规选项卡,编辑图层的比例可变选项,然后输入描述。该描述将用于在 KML 客户端显示的 KML 图层描述,并且可以包含任意有效的 HTML。
-
单击显示选项卡,并根据需要更改图层的透明度。较高的透明度有助于用户查看地图中下面的内容。
-
单击符号系统选项卡,并根据需要改变渲染属性。细微的梯度填充有助于您区分相邻的 3D 要素。
-
单击字段选项卡,并设置通过地图服务要访问的字段。您也可使用要素类中任意字段的 KMLSnippet 别名。在 KML 客户端的内容列表中,您改为使用 KMLSnippet 别名的字段值将显示在各要素图标的下方。KMLSnippet 别名字段的值可包含任意有效的 HTML。
- 另外,也可设置您要应用于数据中的任意定义查询或连接和关联。分别使用定义查询及连接和关联选项卡进行此操作。
- 另外,也可单击标注选项卡,指定您要应用的标注。KML 将使用点要素的颜色、大小和标注表达式。KML 不支持线或多边形的标注。
-
单击 HTML 弹出窗口选项卡,并选中使用 HTML 弹出窗口工具显示此图层的内容。然后选择一个格式选项。这确定了各要素的 KML 描述,即当您单击某要素时在信息性的气球中出现的内容。您可使用 HTML、JavaScript 和样式表使该描述看起来更有吸引力,或者,如果您仅是要试验,您可选择默认的选项来将 HTML 格式作为可视字段的表格显示。
- 单击确定,退出图层属性,然后单击文件 > 保存,保存您的地图文档 (.mxd)。
发布 KML 服务
完成地图文档之后,您就需要将其作为一个 ArcGIS Server 地图服务进行发布。只要启用了地图服务的 KML 功能,它就可生成 KML。默认情况下,启用 KML 功能。
以下步骤显示了如何发布 ArcMap 目录 窗口中的服务。如果您想使用“管理器”来创建该服务,请遵循在管理器中将 GIS 资源发布到服务器中的相应步骤。
- 仍然在 ArcMap 中,单击窗口 > 目录。
- 在目录树中,浏览至要发布的地图文档 (.mxd)。请注意,您也可选择将地图服务定义(.msd 文件)作为 KML 来显示。
- 右键单击地图文档,然后选择发布到 ArcGIS Server。
- 为您的服务指定一个名称,并选择您要该服务发布到的文件夹。然后,单击下一步。
- 在第二个发布到 ArcGIS Server 的向导页面上,请注意 KML 功能已启用。将其保持为选中状态,单击下一步。
- 在第三个向导页面中,查看要创建内容的摘要,然后单击发布。
- 您的服务现已发布,您可以通过展开目录树的 GIS 服务器结点并将该服务拖动到 ArcMap 内容列表中进行预览。
配置 KML 服务的属性
发布 KML 服务后,您可能想要编辑其默认属性。为此,请执行以下步骤:
- 在目录树中,右键单击此服务,然后单击停止。
- 右键单击此服务,然后单击服务属性。
- 单击服务能力选项卡,然后单击 KML(注意不要取消选中该框)。
-
在面板下部编辑各个属性。
- 选择由 KML 服务返回 KML 的限制方式。如果该服务主要用于 Google 地图或 Google 移动,则 KML 兼容模式选项允许您选择仅包含集中的功能子集。这样可以提高性能。
- 选择限制由 KML 服务、输出 DPI 及输出图像大小返回的要素的方式。
- 使用使用 NetworkLinkControl 标签选项可限制客户端请求服务的时间间隔。
- 单击“确定”,关闭服务属性对话框。
- 在目录树中,右键单击此服务,然后单击重新启动。
浏览显示在“ArcGIS Server 服务目录”中的 REST KML 操作
默认情况下,各个 ArcGIS Server 显示一个“服务目录”,它允许您使用 REST 来浏览服务并与服务进行交互。您可使用“服务目录”来练习与您 KML 服务进行交互。
- 使用 Web 浏览器导航到 ArcGIS 服务目录,它的 URL 是 http://<ArcGIS Server 名称>/<ArcGIS Server 实例名称>/rest/services。示例:http://MyServer/ArcGIS/rest/services。
- 请注意链接在以下位置查看覆盖区:Google 地球,它显示有地理范围的所有服务的覆盖区。
- 在服务目录 中,单击相应的链接转到新发布的服务。
- 单击查看范围:Google 地球链接,打开一个显示您的服务的地面叠加层的 KMZ 文档。或者,如果您的服务已进行缓存,则将看到启用 KML 区域的超级叠加层。请注意,该链接不返回矢量。
- 返回到服务目录,单击您的服务中的任意图层。
- 在您的页面底部,单击查询链接。这可打开一个表单,您可在其中指定许多参数来查询一个图层。最后一个选项是您想要的响应格式。在此处选择 KML将显示一个包含查询结果的 KMZ 文档。
- 导航回到服务目录 中的服务页面。
- 在您的页面底部,单击生成 KML。该链接会显示一个 Web 表单,您可在其中选择在 KML 中返回的图层。您也可通过选择选项矢量图层作为矢量数据,栅格图层作为图像,从您的服务中动态选择返回矢量。
发布一个网络链接
通过发布 KML 网络链接,您可以以一种易用的格式在您的服务器上使用 KML。您将在管理器中发布网络链接。然后,您就能在 ArcGIS Explorer 或 Google 地球中添加网络链接。
- 登录 ArcGIS Server 管理器。
- 单击服务选项卡,然后单击 KML 网络链接。
- 单击创建网络链接。
- 输入 KML 的名称,并可以选择输入 KML 的简要描述和详细描述。然后,单击下一步。
- 在地图服务下拉列表中,选择刚发布的地图服务。也选择您要通过 KML 网络链接显示的图层。
- 选择绘制矢量图层作为矢量数据,栅格图层作为图像的选项。因为拉伸的要素为矢量,所以您需要选择该选项。否则,您将看到一个平面的栅格化图像。单击下一步。
- 在此向导的最后一页,您可根据需要调整刷新、视图及主机名参数。此外,您可选择抑制默认的 KML 代码片段行为,该行为会将描述的前两行添加到内容列表中的各个要素。在本教程中,可接受各个默认设置。
- 单击完成创建 KML 网络链接。当您返回到管理器中的 KML 网络链接 页面时,您将看到指向新网络链接的 URL(例如:http://myServer/ArcGIS/kml/networklink1.kmz)。单击或复制并粘贴该 URL,将您的 KML 网络链接添加到 Google 地球或 ArcGIS Explorer。