KML 转换

Keyhole 标记语言 (KML) 是一种基于 XML 的格式,用于存储地理数据和相关内容,是一种官方的开放地理空间联盟 (OGC) 标准。 KML 格式便于在 Internet 上发布并可通过许多免费应用程序进行查看,因此常用于与非 GIS 用户共享地理数据。 KML 文件以 .kml.kmz(表示压缩的 KML 文件)为扩展名。

KML 可以由点要素、线要素、面要素和栅格影像组成。 KML 还可以包含图形、图片、属性和 HTML 等相关内容,尽管通常将 ArcGIS 中的数据集视为独立的同类元素(例如,点要素类只能包含点,栅格只能包含像元或像素,而不能包含要素)。 单个 KML 文件可以包含不同类型的要素,并可包含影像。

通过使用地理处理工具,您可以将地图图层转换为 KML 并将 KML 转换为 ArcGIS 地理数据库,以便查看、编辑和分析任意 KML 文件中包含的地理数据。 支持 KML 2.0 和 2.1 规范中的所有要素。 当前不支持 KML 2.2 规范中的任何新要素,包括动画、照片叠加层和模式标记。

KML 术语

术语描述

KMZ

压缩的 KML 文件。 KMZ 文件的查看和处理方式与 KML 文件完全相同。

地标

点要素,或点、线或面要素上的某个位置,单击可显示弹出信息。

路径

线要素。

面要素。

地面叠加层

经地理配准后叠加在地球表面上的栅格或影像。 地面叠加层的示例包括航空影像、要素图层和转换为影像的地图。

屏幕叠加层

地图或屏幕图形,如徽标、图例或图片。 屏幕叠加层并不是地理显示的组成部分,但这种信息显示方式非常有用。

标签

KML 是一种基于 XML 的格式,因此它的结构基于各种标记。 例如,KML 文件中的每个点要素都位于 <Placemark> 标签内。 <Placemark> 标签包含了一些子标签,如 <Name><Snippet><Description>(用于存储点的相关信息)以及 <Point> 子标签(用于存储 x、y 和 z 坐标)。

从 KML 转换

使用 KML 转图层工具将 .kml.kmz 文件转换为包含来自源 KML 的所有要素和影像的文件地理数据库,并保留 KML 的颜色和符号的图层文件。 除 KML 要素和影像数据以及符号系统之外,转换后的 ArcGIS 数据中还包括其他几个 KML 属性,如弹窗信息、代码片段和其他属性。 执行此转换后,您可以像处理其他任何 GIS 数据那样,对 KML 文件中的地理数据进行编辑、分析和制图。

转换为 KML

使用图层转 KML 工具将地图图层转换为 KML。 通过此工具创建的 KML 文件将成为您转换图层时的数据快照。 创建 KML 后,您可以与能够应用程序(例如 Google Earth)中查看 KML 的其他用户共享 KML。

运行图层转 KML 工具前,您应该符号化图层、设置特定属性并修改特定的数据属性。 在转换过程中,图层的许多内容和属性都会应用到 KML 中,包括可见属性字段、透明度、标注、弹出窗口显示内容和符号系统。 通过设置图层属性和数据属性,您可以确保所创建的 KML 满足您的预期、易于理解且格式正确。 除了下面另有说明的以外,将图层转换为 KML 的规则是所见即所得。 下表显示了在进行图层 KML 转换准备时可执行的一些操作。

属性描述

图层名称

ArcGIS 中的图层将成为 KML 中的文件夹。 图层名称将用作 KML 文件夹名称。

KML 名称

图层描述

图层描述将用作文件夹弹出窗口的显示内容。

图层符号系统

图层符号系统将用作 KML 符号。 对于要素图层,KML 并不支持所有 ArcGIS 符号。 应考虑此一般规则:仅支持简单的符号。

对于线要素,仅支持具有基础颜色和线宽度属性的简单符号,不支持虚线、箭头、多级或分层符号等高级效果。

点要素将导出当前符号并使用 .png 文件显示该符号。 不支持 3D 符号和其他复杂标识符。

对于面要素,仅支持包含简单线边框的简单颜色填充,不支持图案、影线或渐变填充,并且线规也同样适用面边框。 如果您的要素需要的不仅仅是简单符号,则使用图层转 KML 工具的返回单个合成图像参数,将符号化要素转换成保留复杂符号系统的栅格图像。

要素名称

如果开启了标注,则使用图层的标注字段或表达式作为 KML 中的要素名称。 如果未开启标注,则使用图层的显示字段或表达式作为名称。 如果这两个图层属性均未设置,将使用 Name 字段中的值作为名称。

要素标注

如果开启图层标注,将使用图层标注字段或表达式为每个 KML 要素命名,同时将打开标注。

注:

将仅标注点要素。 对于线要素或面要素,可创建并标注质心以获得标注效果。

要素代码片段

要素的代码片段可以通过将现有字段的别名更改为 KMLSnippet 来进行设置。 或者,要素图层的 Snippet 字段中的值将用作 KML 中每个要素的代码片段。

要素弹出窗口

默认情况下,弹出窗口的显示内容将由图层的所有可见字段组成。 还可以使用图层的自定义弹出窗口设置 KML 要素弹出窗口的显示内容。 如果尚未自定义图层弹出窗口,那么在单击 KML 要素时,将在弹出窗口中显示要素图层的 PopupInfo 字段中的值。 这些值可以是数字或文本属性,也可以是存储在文本字段中的 HTML 格式的代码。

文件夹和子文件夹

您可以将文件夹结构分配给 KML 中的图层和要素。 如果图层中有一个名为 FolderPath 的字段,并且该字段中填充了具有多个级别的值,则此字段中的值将用于定义 KML 文件夹和子文件夹。 FolderPath 字段的第一级别将成为包含其他文件夹的根文件夹。 在该字段中,文件夹与子文件夹之间的路径分隔符必须是正斜线 (/)。 如果图层没有 FolderPath 字段,可以使用图层组来定义文件夹和子文件夹结构。 指定图层组本身作为图层转 KML 工具的输入来获取 KML 中的图层组结构。

KML 文件夹和子文件夹

3D 要素高程

如果要素图层启用了 z 并在几何中包含 z 值,将在 3D 模式下创建 KML。 此外,如果一个图层应用了 3D 显示效果(基本高度或拉伸),则也会在输出 KML 文件中保留这些 3D 效果。 如果未应用任何图层效果,则使用字段属性来控制 3D 显示效果。 有关详细说明,请参阅以下 3D 创建部分的内容。

创建 3D KML

以下字段属性(所有类型均为整数)用于控制 3D 空间中要素的放置和属性(在表面上或漂浮在表面上)。

警告:

KML 使用 WGS84 坐标系,测量单位为米。 创建 KML 时,假定所有高程值都以米为单位。

3D 转换的图层属性

字段说明

AltMode

0 或 -1

值 0 表示将高度设置为绝对 KML 设置,并应在要素启用 z 值时使用。 值 -1 表示可在地球表面的相对位置上放置要素。

Base

任何数值

可以使用任意数值。 使用相对放置 (AltMode=-1) 应用此值时,该值将控制地球表面上方要素的高度。

警告:

如果要素的 z 值为 100,且要素位于地球表面高度大于 100 的地理区域内,则绝对设置将导致要素被放置在地球表面之下。

Extruded

0 或 -1

值 0 将设置为无拉伸,而值 -1 将创建拉伸效果。 要素拉伸使得面看上去像块的各个边从面向下延伸至地球表面。

下图左侧的绿色面(OID 3 和 4)是不含高程(或 z 值)的要素,而右侧的红色和灰色要素具有高程值。 含 z 值和不含 z 值的要素可应用出相似的效果。 例如,绿色拉伸面 (OID 3) 不含 z 值并具有如下字段设置:AltMode = -1、Base = 25 以及 Extruded = -1。 红色拉伸面 (OID 2) 含有 z 值 1300 并具有如下字段设置:AltMode = 0、Base = 0 以及 Extruded = -1。 因为红色要素 (OID 2) 具有高程值,其位置设置为绝对位置,且只使用拉伸。

控制 3D 行为
注:

图层转 KML 工具上的固定于地面的要素参数将覆盖 3D 设置,并且所有要素都将叠加在地球表面。 在使用具有低于地球表面的 z 值的要素创建 KML 或不需要 3D 效果时,此参数十分有用。 此外,使用设置为 -1 的名为 Clamped 的字段与针对每个要素使用可选参数将产生相同的效果。