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 或 ArcGIS Explorer 等应用程序中查看 KML 的其他用户共享 KML。
运行图层转 KML 工具前,您应该符号化图层、设置特定属性并修改特定的数据属性。 在转换过程中,图层的许多不同内容和属性都会应用到 KML 中,包括可见属性字段、透明度、标注、弹出窗口显示内容和符号系统。 通过设置图层属性和数据属性,您可以确保所创建的 KML 满足您的预期、易于理解且格式正确。 除了下面另有说明的以外,将图层转换为 KML 的规则是所见即所得。 下表显示了在进行图层 KML 转换准备时可执行的一些操作。
属性 | 描述 |
---|---|
图层名称 | ArcGIS 中的图层将成为 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 中的图层组结构。 |
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) 具有高程值,其位置设置为绝对位置,且只使用拉伸。
注:
图层转 KML 工具上的固定于地面的要素参数将覆盖 3D 设置,并且所有要素都将叠加在地球表面。 在使用具有低于地球表面的 z 值的要素创建 KML 或不需要 3D 效果时,此参数十分有用。 此外,使用设置为 -1 的名为 Clamped 的字段与针对每个要素使用可选参数将产生相同的效果。