图层转 KML (转换)

摘要

用于将要素或栅格图层转换为 KML 格式(.kmz.kml 文件)。 输出 KML 将包含 Esri 要素几何、栅格像元、图层符号系统和其他属性的转换。

了解有关 ArcGIS 中 KML 支持的详细信息

使用情况

  • 该工具的默认输出具有 .kmz 扩展名,即包含 .kml 文件和其他补充文件的存档或 .zip 文件。 许多应用程序(包括 ArcGIS Earth 和 Google EarthGoogle Earth)都可以读取 .kmz 文件。

  • 可通过以下两种方式控制 KML 的外观:

    • 默认情况下,弹出窗口的显示内容由图层的所有可见字段组成。还可以使用图层的自定义弹出窗口设置弹出窗口的显示内容。如果尚未自定义图层弹出窗口,那么在单击 KML 要素时,将在弹出窗口中显示要素图层的 PopupInfo 字段中的值。这些值可以是数字或文本属性,也可以是存储在文本字段中的 HTML 格式的代码。
    • 如果未设置图层属性并且要素类包含某些属性(字段),则将在创建通过 KML 转图层工具最初创建的 KML 图层时使用字段属性,而这些属性将包含用于定义 KML 创建方式的属性。有关根据属性创建 KML 的详细信息,请参阅 KML 转换

  • 如果输入具有与比例相关的显示属性,请通过提供相应的图层输出比例参数值来减小输出 .kmz 文件的大小。

  • 输入图层将投影到 WGS84,因为所有 .kml.kmz 文件都必须使用该坐标系。 要确保投影能够准确定位要素和栅格像元,可能需要指定地理变换环境。 或者,在转换为 KML 之前,请使用投影工具,通过有效的转换将输入图层重新投影到 WGS84。

  • 输入要素与附件将包含在输出 .kmz 文件中。 请注意 .kmz 文件中附件的以下情况:

    • 附件可显著增大输出文件大小。
    • 当在 KML 客户端中使用 .kml 文件时,可通过 KML 弹出窗口获取附件。
    • 可在运行工具之前,通过禁用维护附件环境设置将附件排除。
    • 并非所有 KML 客户端都支持显示附件。 一些 KML 客户端应用程序能够更好地支持图像和 PDF 等附件。

    如果输出为 .kml 文件,则将不包含附件。

  • 图层输出比例返回图像的大小(像素)参数可一起用于创建切片输出。 例如,对于大小为 7000 x 5000 像素且返回图像的大小(像素)参数值为 1000 像素的图像,输出图像将由 7 x 5 或 35 个子图像组成。 如果图层输出比例参数值为 1,则每个子图像将为 1000 x 1000 像素。 如果图层输出比例参数值为 10,则每个子图像将为 100 x 100 像素。

  • 当选中传输字段域描述环境时,域描述将被传输到输出。

参数

标注说明数据类型
输入图层

将转换为 KML 格式的要素、栅格图层或者图层组。

Feature Layer; Raster Layer; Mosaic Layer; Group Layer; Layer File
输出文件(KML 或 KMZ)

输出 .kml.kmz 文件。 输出文件可以使用 .kmz 扩展名生成存档或压缩文件,也可以使用 .kml 扩展名生成基础 KML 格式文件。 输出 .kmz 文件为默认值。

输出 .kmz 文件支持栅格图层、符号系统和其他图层属性、附件以及其他高级功能。 输出 .kml 文件将使用基础 KML 符号和属性。

File; Workspace; KML Layer
图层输出比例
(可选)

输出文件的比例。 对于栅格图层,可以将值 0 用来创建一个未平铺输出图像。 如果使用大于或等于 1 的值,则将确定栅格的输出分辨率。 此参数对栅格图层以外的图层无效。

Double
返回单一合成图像
(可选)

指定输出是否将为单个合成图像。 仅当指定输出 KML 为 .kmz 文件时,此参数才适用,因为输出 .kml 文件不支持地面叠加图像或栅格。

  • 选中 - 输出将为单一合成图像,表示源图层中的栅格或矢量要素。 栅格以 GroundOverlay 形式叠加在地形上方。 使用该选项可减小输出文件的大小。 使用此选项时,无法选择 .kml 文件中的单个要素和图层。 仅输出 .kmz 文件支持图像。
  • 未选中 - 如果输入图层具有矢量要素,则其将保留为 KML 矢量。
Boolean
范围
(可选)

要转换的图层的地理范围。 输出 KML 中仅包含此范围中的要素或栅格像元。

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。 仅在存在活动地图时,才可使用此选项。
  • 绘制范围 构造直角并完成草图 - 范围将基于在地图或场景上绘制的矩形。 此选项将在工程地理数据库中创建要素类并将图层添加至地图。 该要素类的坐标系将与地图相同。
    注:

    环境对话框中不提供此选项。 只能在具有范围数据类型的工具参数中或工具对话框的环境选项卡中找到此选项。

    注:

    当选中从“编辑”选项卡启用和禁用编辑编辑选项时,必须在编辑功能区选项卡上启用编辑才能绘制范围。

  • 图层范围 图层 - 范围基于活动地图图层。 使用下拉列表选择可用图层,或使用所有图层中数据的范围选项获取所有活动地图图层(不包括底图)的组合范围。 仅在存在具有图层的活动地图时,才可使用此选项。

    每个地图图层具有以下选项:

    • 所有要素 全选 - 图层中所有要素的范围。
    • 选定要素基于选定要素的区域 - 图层中选定要素的范围。
    • 可见要素 Extent Indicator - 图层中可见要素的范围。
      注:

      选定要素 基于选定要素的区域可见要素 Extent Indicator 选项中的范围仅适用于要素图层。

  • 浏览 浏览 - 范围基于现有数据集。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围坐标和坐标系复制到剪贴板。
    • 使用粘贴范围 粘贴 - 从剪贴板粘贴范围坐标和(可选)坐标系。 如果剪贴板值不包含坐标系,则范围将使用地图的坐标系。
    注:

    将使用与 ArcPy Extent 对象相同的格式和顺序从剪贴板中复制和粘贴范围坐标:x-min、y-min、x-max、y-max 和空间参考。

  • 重置范围 重置 - 将范围重置为默认值。
  • 手动输入坐标 - 坐标必须是数值,并且与活动地图的坐标系相匹配。
    警告:

    地图可能使用与输入的坐标不同的显示单位。 不支持使用主方向(N、S、E、W)。 在南纬和西经坐标中使用负号。

Extent
返回图像的大小(像素)
(可选)

图层输出比例参数值大于或等于 1 时,栅格图层的切片大小。 此参数对栅格图层以外的图层无效。

Long
输出图像 DPI
(可选)

选中返回单一合成图像参数时的 KML 输出的设备分辨率。 可将该参数与返回图像的大小(像素)参数一起用于控制输出图像分辨率。

此参数无法重采样源栅格。 输入栅格将会创建快照,并将其作为简单 .png 图像包括在 KML 输出中。

Long
将要素强制固定于地面
(可选)

指定是否将忽略输入要素的 z 值以及是否在地面高程处定位或强制固定所有要素。

  • 选中 - 将忽略输入要素的 z 值,并在地面高程处定位或强制固定所有要素。 如果输入要素没有 z 值,则会始终将其强制固定于地面。 这是默认设置。
  • 未选中 - 要素的 z 值将保留在输出 KML 中。 将在 KML 客户端中相对于海平面绘制要素。
Boolean

arcpy.conversion.LayerToKML(layer, out_kmz_file, {layer_output_scale}, {is_composite}, {boundary_box_extent}, {image_size}, {dpi_of_client}, {ignore_zvalue})
名称说明数据类型
layer

将转换为 KML 格式的要素、栅格图层或者图层组。

Feature Layer; Raster Layer; Mosaic Layer; Group Layer; Layer File
out_kmz_file

输出 .kml.kmz 文件。 输出文件可以使用 .kmz 扩展名生成存档或压缩文件,也可以使用 .kml 扩展名生成基础 KML 格式文件。 输出 .kmz 文件为默认值。

输出 .kmz 文件支持栅格图层、符号系统和其他图层属性、附件以及其他高级功能。 输出 .kml 文件将使用基础 KML 符号和属性。

File; Workspace; KML Layer
layer_output_scale
(可选)

输出文件的比例。 对于栅格图层,可以将值 0 用来创建一个未平铺输出图像。 如果使用大于或等于 1 的值,则将确定栅格的输出分辨率。 此参数对栅格图层以外的图层无效。

Double
is_composite
(可选)

指定输出是否将为单个合成图像。 仅当指定输出 KML 为 .kmz 文件时,此参数才适用,因为输出 .kml 文件不支持地面叠加图像或栅格。

  • COMPOSITE输出将为单一合成图像,表示源图层中的栅格或矢量要素。 栅格以 GroundOverlay 形式叠加在地形上方。 使用该选项可减小输出文件的大小。 使用此选项时,无法选择 .kml 文件中的单个要素和图层。 仅输出 .kmz 文件支持图像。
  • NO_COMPOSITE如果输入具有矢量要素,则其将保留为 KML 矢量。
Boolean
boundary_box_extent
(可选)

要转换的图层的地理范围。 输出 KML 中仅包含此范围中的要素或栅格像元。 可以使用以下选项指定该范围:

  • MAXOF - 将使用的所有输入的最大范围。
  • MINOF - 将使用的所有输入共用的最小范围。
  • DISPLAY - 范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。 坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
image_size
(可选)

layer_output_scale 参数值大于或等于 1 时,栅格图层的切片大小。 此参数对栅格图层以外的图层无效。

Long
dpi_of_client
(可选)

is_composite 参数设置为 COMPOSITE 时的 KML 输出的设备分辨率。 将该参数与 image_size 参数配合使用可控制输出图像的分辨率。

此参数无法重采样源栅格。 输入栅格将会创建快照,并将其作为简单 .png 图像包括在 KML 输出中。

Long
ignore_zvalue
(可选)

指定是否将忽略输入要素的 z 值以及是否在地面高程处定位或强制固定所有要素。

  • ABSOLUTE要素的 z 值将保留在输出 KML 中。 将在 KML 客户端中相对于海平面绘制要素。
  • CLAMPED_TO_GROUND将忽略输入要素的 z 值,并在地面高程处定位或强制固定所有要素。 如果输入要素没有 z 值,则会始终将其强制固定于地面。 这是默认设置。
Boolean

代码示例

图层转 KML (LayerToKML) 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 LayerToKML 函数。

import arcpy
arcpy.conversion.LayerToKML("buildings", "c:/outputKMZs/bldg.kmz")
图层转 KML (LayerToKML) 示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 LayerToKML 函数。

# Description: The following stand-alone script demonstrates how to find 
#              all layer files in a given workspace and export each to 
#              a KML at the 1:10,000, 1:20,000, and 1:30,000 scale using
#              the LayerToKML tool.
import arcpy

arcpy.env.workspace = "C:/data"

# Set Local Variables
composite = 'NO_COMPOSITE'
pixels = 2048
dpi = 96
clamped = 'CLAMPED_TO_GROUND'

# Use the ListFiles method to identify all lyr and lyrx files in workspace
layers = arcpy.ListFiles("*.lyr*") 

if len(layers) > 0:
    for layer in layers:        
        # Strips the '.lyr(x)' part of the name and appends '.kmz'
        outKML = os.path.join(os.path.splitext(layer), ".kmz")
        for scale in range(10000, 30001, 10000):
            # Run LayerToKML
            arcpy.conversion.LayerToKML(layer, outKML, scale, composite, 
                                        '', pixels, dpi, clamped)
else:
    arcpy.AddMessage('There are no layer files in {}'.format(arcpy.env.workspace))

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题