教程:发布 KML 服务
通过发布启用了 KML 功能的 ArcGIS Server 地图服务,您可以在 Web 上动态提供 KML。这样,客户就可以连接到地图服务并请求某特定地理区域的 KML 数据。该 KML 可以通过 REST 的“生成地图”、“生成 KML”和“查询”操作来显示;或者通过 ArcGIS 服务目录中 Google 地球中的视图链接来显示;也可以通过将正确配置的 URL 嵌入到服务的 KML 网络链接文档来显示。
本教程可引导您完成使用 3D 拉伸要素创建 KML 服务的过程。首先,您将在 ArcGlobe 中创建一个含有 3D 拉伸属性的图层文件。然后,将该图层添加到 ArcMap 中,设置图层的符号系统,并在您的 KML 中配置与要素关联的描述性文本。接下来,要将该地图发布为一个启用了 KML 功能的服务。最后,在您的服务器上创建一个 KML 网络链接,以便其他用户可轻松访问该 KML。
开始学习本教程前
如果您刚刚安装 ArcGIS Server,则在连接到服务器和发布服务之前,需要完成一些准备工作:
- 有关如何配置 ArcGIS Server 站点的详细信息,请参阅本帮助系统的安装后配置入门部分。
- 要了解如何使 GIS 资源所引用的数据对于服务器可用,请参阅主题使数据能被 ArcGIS Server 访问。
在 ArcGlobe 和 ArcMap 中准备数据
要发布包含 3D 属性(例如 z 偏移或基于属性的拉伸)的要素类,首先,必须编辑 ArcGlobe 中的要素类图层属性,并将其保存为图层文件;然后,将该图层文件添加到 ArcMap 文档中。以下步骤显示了如何应用 ArcGlobe 中的拉伸以及如何保存相应的图层文件并在 ArcMap 中使用。
- 启动 ArcGlobe 并添加一个要素类。
- 在内容列表中,右键单击相应的图层,然后单击属性。
- 单击 Globe 拉伸选项卡。
- 选中拉伸图层中的要素和不绘制拉伸面的底面。也可选择通过将其添加到各要素的基本高度的方式应用拉伸。
- 在 ArcGlobe 中单击 Globe 拉伸选项卡。
-
设置拉伸值或表达式。这可确定要素从地图中凸出的距离。如果需要通过其他方式帮助构建表达式,则可打开表达式构建器 。在本例中,面要素的拉伸方式是将 POP10_SQMI 属性值乘以 250 (POP10_SQMI *250),再将该值添加到该要素的基本高度。这仅是为外观选择的一个任意值。您可能需要尝试多种表达式,而后才能得到所需要的外观。
- 设置该图层的拉伸属性并且当它看起来是一个三维图层之后,右键单击该图层并选择另存为图层文件。
- 由于已确定了数据的 3D 属性,因此接下来就可以设置其 2D 图层属性。打开 ArcMap 并单击添加数据。
- 浏览至刚从 ArcGlobe 中保存的图层文件 (.lyr),并单击添加。该图层在 ArcMap 中不会以 3D 模式显示,但当您在 Google 地球或 ArcGIS Explorer 中查看地图时,该图层则会以 3D 模式进行显示。
- 右键单击该图层并从快捷菜单中选择属性来设置图层的属性信息。
- 单击常规选项卡,设置图层的比例范围,然后输入描述信息。该描述将用于在 KML 客户端处显示的 KML 图层描述,而且,其中也可以包含任意有效的 HTML 要素。
- 或者单击显示选项卡,然后更改图层的透明度。较高的透明度有助于用户查看底图下面的其他内容。
- 或者单击符号系统选项卡并更改渲染属性。细微的渐变填充有助于您区分相邻的 3D 要素。
- 单击字段选项卡,并设置通过地图服务要访问的字段。您也可更改要素类中的任何字段使其使用 KMLSnippet 别名。在 KML 客户端的内容列表中,您改为使用 KMLSnippet 别名的字段值将显示在各要素图标的下方。
- 另外,也可设置您要应用于数据中的任意定义查询或连接和关联。分别使用定义查询及连接和关联选项卡进行此操作。
- 另外,也可单击标注选项卡,指定您要应用的标注。KML 将使用点要素的颜色、大小和标注表达式。KML 不支持线或面的标注。
- 单击 HTML 弹出窗口选项卡,并选中使用 HTML 弹出窗口工具显示此图层的内容。然后选择一个格式选项。这确定了各要素的 KML 描述,即当您单击某要素时在信息气球中出现的内容。您可使用 HTML、JavaScript 和样式表使该描述看起来更有吸引力,或者,如果您仅仅要做一个尝试,则可选择默认的选项来将 HTML 格式作为可视字段的表格显示。
- 单击确定,退出图层的属性设置,然后单击文件 > 保存,保存您的地图文档。
发布 KML 服务
既然已完成地图文档,所以需要将其发布为地图服务。只要启用了地图服务的 KML 功能,它就可生成 KML。默认情况下,KML 功能为启用状态。
- 在 ArcMap 中,从主菜单中选择文件 > 共享为 > 服务。
- 在共享为服务 窗口中,选择发布服务。单击下一步。
- 在发布服务对话框中,单击连接到 ArcGIS Server 以创建到 ArcGIS Server 的新连接。
- 在添加 ArcGIS Server 窗口中,选择发布 GIS 服务。单击下一步。
- 对于服务器 URL,输入要连接的 ArcGIS Server 站点的 URL。例如,http://gisserver.domain.com:6080/arcgis。
- 在服务器类型下拉列表中选择 ArcGIS Server。
- 在发布过程中,将创建服务定义文件并将其临时存储到本地磁盘上。发布过程完成后,服务定义将上传到服务器并删除本地文件。考虑到本教程的目的,接受默认的过渡文件夹并继续。
- 如果服务器管理员已为 ArcGIS Server 启用安全功能,请输入用户名和密码。单击完成。
- 还可以在发布服务 窗口中,输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。单击下一步。
- 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。也可将服务组织到根文件夹下的子文件夹中。选择要将服务发布到其中的目标文件夹,或创建一个新文件夹存储服务。单击继续。
- 服务编辑器 随即显示。您将使用服务编辑器 选择用户可对 KML 服务执行的操作,还可对服务器显示 KML 服务的方式进行精细的控制。单击服务能力选项卡。
- 默认情况下,地图和 KML 两项功能自动启用。在服务编辑器 的左侧窗格中,单击 KML,然后编辑以下属性:
- 选择允许对 KML 服务进行的操作。有关各操作的说明,请参阅 ArcGIS Server 中的 KML 支持。
- 选择由 KML 服务所返回 KML 的限制方式。如果该服务主要用于 Google 地球、Google 地图或 Google 移动,则 KML 兼容模式选项允许您选择仅包含其中的功能子集。这样可以提高性能。
- 选择由 KML 服务所返回要素的限制方式、输出图像大小和输出客户端 DPI。
- 使用使用 NetworkLinkControl 标签选项可限制客户端请求服务的时间间隔。
提示:有关如何最好地配置 KML 服务以进行部署的信息,请参阅调整和配置服务。
- 单击分析 。该操作可用于对地图文档进行检查,看其是否能够发布到服务器。提示:
配置 KML 服务时为获得更多视图区域,请单击服务编辑器 顶部的折叠 按钮。
- 在准备 窗口中修复任何错误 ;必须在发布前完成此操作。另外,您还可以修复警告和通知消息,以进一步完善 KML 服务的性能和外观。有关解决这些问题的详细信息,请参阅分析 GIS 资源。注:
可将文件夹和地理数据库注册到 ArcGIS Server 站点,从而确保服务器可识别并使用数据。如果继续以下步骤,那么地图文档中所引用的来自取消注册 的文件夹或地理数据库的任何数据都将在发布时复制到服务器。这是一种预防性措施,可确保服务器能够访问服务所使用的所有数据。有关将文件夹或地理数据库注册到 ArcGIS Server 站点的完整说明,请参阅使用 ArcGIS for Desktop 将数据注册到 ArcGIS Server。
- 还可以在服务编辑器 中,单击预览 。这样您便可以了解在 Web 上查看地图时地图的外观。有关详细信息,请参阅预览地图。
- 修复了地图文档中的错误后,请单击发布 。
- 您的服务现已发布,您可以通过展开目录 窗口的 GIS 服务器结点并将该服务拖动到 ArcMap 内容列表中进行预览。
浏览显示在“ArcGIS Server 服务目录”中的 REST KML 操作
默认情况下,每个 ArcGIS Server 显示一个“服务目录”,它允许您使用 REST 来浏览服务并与服务进行交互。您可使用“服务目录”来练习与您 KML 服务进行交互。
- 打开 Web 浏览器并导航到服务目录,其 URL 通常为 http://gisserver.domain.com:6080/arcgis/rest/services。
- 在服务列表中,单击 KML 服务的名称。如果看不到服务,则服务可能位于文件夹中。
- 单击在以下位置处查看:Google 地球链接,打开一个显示您的服务的地面叠加层的 KMZ 文档。或者,如果您的服务已进行缓存,则将看到启用 KML 区域的超级叠加层。请注意,该链接不返回矢量。
- 返回到服务目录,单击服务中的任意图层。
- 在您的页面底部,单击查询链接。这可打开一个表单,您可在其中指定多个参数来查询一个图层。最后一个选项是您想要的响应格式。选择 KML 作为格式将显示一个包含查询结果的 KMZ 文档。
- 导航回到服务目录 中的服务页面。
- 在页面底部,单击生成 KML。该链接会显示一个 Web 表单,您可在其中选择在 KML 中返回的图层。您也可通过选择选项矢量图层作为矢量数据,栅格图层作为图像,从您的服务中动态选择返回矢量。
通过地图服务创建网络链接
通过在 ArcGIS Server Manager 中创建 KML 网络链接,您可以以一种易用的格式在您的服务器上使用 KML。然后,您就能在 ArcGIS Explorer、ArcGlobe 或 Google 地球中添加网络链接。
- 打开管理器,然后登录。有关此步骤的其他帮助信息,请参阅登录管理器。
- 单击服务 > KML 网络链接 > 创建网络链接。
- 指定链接的名称。指定的名称用作文件名并嵌入到网络链接文件的 Name 标签中。
- 或者,指定外部主机名。
- 或者,提供简要描述和详细描述。详细描述中可以包含嵌入的 HTML 标记和 URL。
- 或者,指定代码片段行为。默认情况下,代码片段配置为不显示。单击下一步。
- 在地图服务下拉列表中,选择刚发布的地图服务。也选择您要通过 KML 网络链接显示的图层。
- 选择绘制矢量图层作为矢量数据,栅格图层作为图像的选项。因为拉伸的要素为矢量,所以您需要选择该选项。否则,您将看到一个平面的栅格化图像。
- 或者,将默认兼容模式设置为特定的 Google 客户端。
- 如果需要,调整基于视图的刷新、视图边界比例和基于时间的刷新参数。此外,还可选择让浏览器在刷新后立即转到视图。对于本教程,默认选项已经足够。单击下一步。
- 或者,根据期望的网络链接显示方式设置纬度、经度、范围、标题和倾斜度参数。对于本教程,默认选项已经足够。
- 单击创建创建 KML 网络链接。
当您返回到管理器中的 KML 网络链接模块时,您将看到指向新网络链接的 URL(例如,http://gisserver.domain.com:6080/arcgis/kml/networklink01.kmz)。单击或复制并粘贴该 URL,将 KML 网络链接添加到 ArcGIS Explorer、ArcGlobe、Google 地球、Google 地图或 Google 移动。