图层转 KML (转换)

许可等级:BasicStandardAdvanced

摘要

此工具用于将要素或栅格图层转换为 KML 文件,其中包含 ESRI 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,具有 .kmz 扩展名,并且可以由任何 KML 客户端读取,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。

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

用法

语法

LayerToKML_conversion (layer, out_kmz_file, {layer_output_scale}, {is_composite}, {boundary_box_extent}, {image_size}, {dpi_of_client}, {ignore_zvalue})
参数说明数据类型
layer

要转换为 KML 的要素或栅格图层或图层文件 (.lyr)。

Layer
out_kmz_file

待写入的 KML 文件。该文件是压缩文件,扩展名为 .kmz。任何 KML 客户端都可读取该文件,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。

File
layer_output_scale
(可选)

导出图层时使用的比例。此参数与任何比例可变选项结合使用,例如图层可见性或按比例渲染。如果此图层在导出比例下不可见,则其不会包含在已创建的 KML 文件中。如果没有比例可变选项,则可使用任何值(例如 0)。

如果导出将以 3D 矢量形式显示的图层并且将 is_composite 参数设置为 NO_COMPOSITE,则只要要素不具有任何取决于比例的渲染,您就可以将此参数设置为任何值。

仅应输入数字字符;例如,输入 20000 作为比例,而不能输入 1:20000 或 20,000。

Double
is_composite
(可选)
  • COMPOSITE输出 KML 文件将表示源图层中的栅格或矢量要素的单一合成图像。栅格以 KML GroundOverlay 形式悬在地形上方。选择该选项可减小输出 KML 文件的大小。选中该复选框时,KML 中的各要素和图层将不可选择。
  • NO_COMPOSITE如果图层具有矢量要素,则将以 KML 矢量保留它们。(如果图层是栅格,则可以为该参数选择任一选项,这没有任何明显的区别。)
Boolean
boundary_box_extent
(可选)

待导出区域的地理范围。矩形范围边界应按左下右上形式(xmin、ymin、xmax、ymax)以空格分隔的 WGS84 地理坐标字符串进行指定。

Extent
image_size
(可选)

定义输出 KML 文档中所有栅格的垂直和水平分辨率。将该参数与 DPI 参数配合使用可控制输出图像的分辨率。

Long
dpi_of_client
(可选)

定义输出 KML 文档中所有栅格的设备分辨率。将该参数与图像大小参数配合使用可控制输出图像的分辨率。

Long
ignore_zvalue
(可选)
  • ABSOLUTE创建 KML 时使用要素的 Z 值。将在 KML 客户端中相对于海平面绘制要素。
  • CLAMPED_TO_GROUND覆盖要素中的 Z 值并使用固定于地面的要素创建 KML。要素将被叠加到 terrain 上。此设置适用于不具有 Z 值的要素。这是默认设置。
Boolean

代码实例

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

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

import arcpy

arcpy.env.workspace = "C:/data"
arcpy.LayerToKML_conversion("bldg.lyr", "bldg.kmz")
图层转 KML (LayerToKML) 示例 2(独立脚本)

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

# Name: LayerToKML Example
# 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.
# Author: ESRI

import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data"

# Use the ListFiles method to identify all layer files in workspace
if len(arcpy.ListFiles("*.lyr")) > 0:
    for layer in arcpy.ListFiles("*.lyr"):
        # Set Local Variables
        composite = 'NO_COMPOSITE'
        pixels = 2048
        dpi = 96
        clamped = 'CLAMPED_TO_GROUND'
        # Strips the '.lyr' part of the name and appends '.kmz'
        outKML = file[:4] + ".kmz"
        for scale in range(10000, 30001, 10000):
            #Execute LayerToKML
            arcpy.LayerToKML_conversion(layer, outKML, scale, composite, 
                                        '', pixels, dpi, clamped)
else:
    arcpy.AddMessage('There are no layer files in '+env.workspace+'.')

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 是
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014