在 ArcGIS Desktop 中创建 KML 是一个简单的过程,其中涉及以下三个主要步骤:
- 使用以下 ArcGIS Desktop 应用程序之一制作图层和地图:(ArcMap、ArcGlobe 和 ArcScene)。
- 为确保创建的 KML 满足您的需求、简单易懂且格式正确,在将图层和地图转换为 KML 之前需进行一些准备工作,即,设置特定属性和数据属性。
- 使用以下其中一种 KML 转换工具创建 KML 文件:图层转 KML 或地图转 KML。您还可以使用多面体转 COLLADA 工具根据 3D 多面体要素类来创建 KML。
制作图层和地图
要素和栅格图层以及 ArcMap 地图文档 (.mxd) 都可转换为 KML。必须先将要素类或栅格数据集添加到显示中(自动根据数据集创建图层),或使用创建要素图层或创建栅格图层工具将这些数据集转变为图层,然后才能将它们转换为 KML。
在 ArcGIS Desktop 中创建的 KML 表示图层和地图转换为 KML 时的快照。图层在 ArcGIS Desktop 中的显示效果与作为 KML 时的显示效果基本匹配;例如,如果您希望 KML 具有某个符号或颜色,则需要在 ArcMap 中为地图图层分配所需的符号系统,然后将其导出到 KML。
准备要转换为 KML 的图层和地图
图层
在转换过程中,在 ArcGIS Desktop 中创建的图层的许多不同内容和属性都会应用到 KML 中,包括可见属性字段、透明度、标注、弹出窗口显示内容和符号系统。通过设置图层属性和数据属性,您可以确保所创建的 KML 满足您的需求、简单易懂且格式正确。除了下面另有说明的以外,将图层或地图转换为 KML 的规则是所见即所得。下表显示了在进行图层 KML 转换准备时可执行的一些操作。
图层属性和 KML 转换
资产 | 外观 | 说明 |
---|---|---|
图层名称 | ![]() | ArcGIS 中的要素图层将成为 KML 中的文件夹。图层名称将用作 KML 文件夹名称。 |
图层描述 | ![]() | 图层描述将用作 KML 文件夹弹出窗口的显示内容。 |
图层符号系统 | ![]() | 图层符号系统将用作 KML 符号。 对于要素图层,KML 并不支持所有 ArcGIS 符号。对于线要素,仅支持具有基础颜色和线宽度属性的简单符号,不支持虚线、箭头、多级或分层符号等高级效果。对于面要素,仅支持包含简单线边框的简单颜色填充,不支持图案、影线或渐变填充,并且面边框也同样适用此线规则。如果您的要素需要不仅仅是简单符号,则使用图层转 KML 或地图转 KML 工具的返回单一合成图像参数,将符号化要素转化成保留复杂符号系统的栅格图像。 |
要素名称 | ![]() | 如果开启了要素标注,则使用图层的标注字段或表达式作为名称。如果未开启标注,则使用图层的显示字段或表达式作为名称。如果这两个图层属性均未设置,将使用 Name 字段中的值作为名称。 |
要素标注 | ![]() | 开启图层标注时,将使用图层标注字段或表达式为每个 KML 要素命名,同时将打开标注。 |
要素代码片段 | ![]() | 要素的代码片段可以通过将现有字段的别名更改为 KMLSnippet 来设置。或者,要素图层的 Snippet 字段中的值将用作 KML 中每个要素的代码片段。 |
要素弹出窗口 | ![]() | 默认情况下,弹出窗口的显示内容将由图层的所有可见字段组成。还可以使用图层的 HTML 弹出窗口属性来设置 KML 要素弹出窗口的显示内容。如果关闭了图层 HTML 弹出窗口显示,那么在单击 KML 要素时,将在弹出窗口中显示要素图层的 PopupInfo 字段中的值。这些值可以是数字或文本属性,也可以是存储在文本字段中的 HTML 格式的代码。 |
文件夹和子文件夹 | ![]() | 如果图层有一个名为 FolderPath 的字段,那么此字段中的值将用于定义 KML 文件夹和子文件夹。该字段中的第一个字符应该是正斜线 ( / ),这一点与文件夹和子文件夹之间的路径分隔符相同。如果图层没有 FolderPath 字段,可以使用图层组来定义文件夹和子文件夹结构。指定图层组本身作为图层转 KML 工具的输入来获取 KML 中的图层组结构。 |
要素高程 | ![]() | 如果要素图层启用了 z 并在几何中包含 z 值,将在 3D 模式下创建 KML。此外,如果一个图层在 ArcGlobe 或 ArcScene 中应用了 3D 显示效果(基本高度或拉伸),那么也会在输出 KML 中保留这些 3D 效果。如果未应用任何图层效果,则使用字段属性来控制 3D 显示效果。有关详细说明,请参阅以下 3D 创建部分的内容。 |
3D 创建
以下字段属性(所有类型均为整数)用于控制 3D 空间中要素的放置和属性(在表面上或在表面上浮动)。
3D 转换的图层属性
字段 | 值 | 说明 |
---|---|---|
AltMode | 0 或 -1 | 值 0 表示将高度设置为绝对 KML 设置,并应在要素启用 z 值时使用。值 -1 表示可在地球表面的相对位置上放置要素。 |
基础 | 任何数值 | 可以使用任意数值。使用相对放置 (AltMode=-1) 应用此值时,该值将控制地球表面上方要素的高度。 |
拉伸 | 0 或 -1 | 值 0 将设置为无拉伸,而值 -1 将创建拉伸效果。要素拉伸使得面看上去像块的各个边从面向下延伸至地球表面。 |
下列屏幕截图左后方的绿色面是不含高程(或 Z 值)的要素,而右前方的红色和灰色要素具有高程值。相似的效果可应用于含 z 值和不含 z 值的要素。例如,绿色拉伸面不含 z 值并具有如下字段设置:AltMode = -1、Base = 25 和 Extruded= -1。红色拉伸面含有 z 值 1,300 并具有如下字段设置:AltMode = 0、Base = 0 和 Extruded= -1。因为红色要素具有高程值,其位置设置为绝对位置,且只使用拉伸。

地图
另外,您还可以使用一些地图属性来控制转换为 KML 的地图文档将具有的外观和行为。下表显示了在进行地图 KML 转换准备时可执行的一些操作。
地图属性和 KML 转换
设置 | 外观 | 说明 |
---|---|---|
地图数据框名称 | ![]() | 一次只能将一个数据框导出为 KML。地图数据框名称将用作 KML 中的顶部名称。 |
地图数据框描述 | ![]() | 数据框描述用作顶层 KML 项目弹出窗口的显示内容。 |
图例 | ![]() | 图例是唯一的屏幕叠加,您可以将其添加到在 ArcGIS Desktop 中创建的 KML 中。在地图文档布局视图中添加的图例将作为 KML 屏幕叠加和按钮文件夹添加,按钮文件夹可用于更改图例在屏幕上的显示位置。只有在使用地图转 KML 工具时才会在 KML 中添加图例叠加。 |
创建 KML 文件
可使用下面两个地理处理工具根据 ArcGIS 数据创建 KML 文件:图层转 KML 和地图转 KML。这两个工具都会在输出位置创建一个 KMZ(压缩的 KML)文件。另外,将多面体要素类转换为 COLLADA 文件时,多面体转 COLLADA 工具会创建一个相关的 KML 文件。
图层转 KML
图层转 KML 工具可从 ArcMap、ArcGlobe 或 ArcScene 直接导出各个图层。

地图转 KML
地图转 KML 工具可将 ArcMap 地图文档数据框中的多个图层同时导出为 KML 文件。除非选择将所有图层转换为一个扁平影像,否则各个图层将作为 KML 中的不同文件夹保留。

多面体转 COLLADA
可使用多面体转 COLLADA 工具将多面体导出为磁盘上的 COLLADA 文件。COLLADA 是一种受许多 3D 应用程序(包括 Google 地球)支持的 3D 模型格式。如果所转换的多面体要素类位于投影坐标系中,此工具将在输出文件夹中创建一个 KML 文件,该文件会为 COLLADA 文件中的 3D 模型分配地理坐标。