描述
用于将要素或栅格图层转换为 KML 文件,其中包含 Esri 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,具有 .kmz 扩展名,并且可以由任何 KML 客户端读取,包括 ArcGIS Earth、ArcGlobe 和 Google Earth。
使用方法
可通过两种方式控制 KML 的外观。
- 默认情况下,弹出窗口的显示内容将由图层的所有可见字段组成。还可以使用图层的自定义弹出窗口设置弹出窗口的显示内容。如果尚未自定义图层弹出窗口,那么在单击 KML 要素时,将在弹出窗口中显示要素图层的 PopupInfo 字段中的值。这些值可以是数字或文本属性,也可以是存储在文本字段中的 HTML 格式的代码。
- 如果未设置图层属性并且要素类包含某些属性(字段),则将在创建通过 KML 转图层工具最初创建的 KML 图层时使用字段属性,而这些属性将包含用于定义 KML 创建方式的属性。有关根据属性创建 KML 的详细信息,请参阅 转换至与转换自 KML。
-
如果图层具有与比例相关的显示属性并且用户选择了合适的地图输出比例,则可减小输出 KMZ 文档的大小。
所有 KML 和 KMZ 文件均在 WGS84 坐标系中创建。如果图层未采用 WGS84 坐标,您需要确保图层可以正确投影。如果投影需要变换,可使用投影工具在 KML 转换前重新投影数据。
要输出叠加在地形上方的单一栅格图像,请使用返回单一合成图像选项。
输入要素与附件将包含在输出 .kmz 文件中。请注意 .kmz 文件内附件的以下情况:
- 附件可明显增大输出文件大小。
- 当在 KML 客户端中使用 KML 文件时,可通过 KML 弹出窗口获取附件。
- 可在运行工具之前,通过禁用维护附件环境设置将附件排除。
- 并非所有 KML 客户端都支持显示附件。一些 KML 客户端应用程序能够更好地支持图像和 PDF 文档等附件。
图层输出比例和返回图像的大小(像素)参数可一起用于创建切片输出。例如,对于大小为 7000 x 5000 像素且返回图像的大小(像素)参数值为 1000 像素的图像,输出图像将由 7 x 5 或 35 个子图像组成。如果将图层输出比例参数值设置为 1,则每个子图像将为 1000 x 1000 像素。如果将图层输出比例参数值设置为 10,则每个子图像将为 100 x 100 像素。
语法
LayerToKML(layer, out_kmz_file, {layer_output_scale}, {is_composite}, {boundary_box_extent}, {image_size}, {dpi_of_client}, {ignore_zvalue})
参数 | 说明 | 数据类型 |
layer | 要转换为 KML 的要素或栅格图层或者图层文件 (.lyrx)。 | Layer |
out_kmz_file | 待写入的 KML 文件。该文件是压缩文件,扩展名为 .kmz。任何 KML 客户端都可读取该文件,包括 ArcGIS Earth、ArcGlobe 和 Google Earth。 | File |
layer_output_scale (可选) | 对于栅格图层,可以将值 0 用来创建一个未平铺输出图像。如果使用大于或等于 1 的值,则将确定栅格的输出分辨率。此参数对栅格图层以外的图层无效。 | Double |
is_composite (可选) | 指定是否要输出单个合成图像。
| Boolean |
boundary_box_extent (可选) | 待导出区域的地理范围。应按左下右上形式(xmin、ymin、xmax、ymax)以空格分隔的 WGS84 地理坐标字符串指定矩形范围边界。 | Extent |
image_size (可选) | 图层输出比例参数值被设置为大于或等于 1 的值时的栅格图层的切片大小。此参数对栅格图层以外的图层无效。 | Long |
dpi_of_client (可选) | 选中返回单一合成图像参数时的 KML 输出的设备分辨率(Python 中的 is_composite = "COMPOSITE")。此参数将与返回图像的大小(像素)参数(Python 中的 image_size)配合使用以控制输出图像分辨率。 注:此参数无法重采样源栅格。任何输入栅格均会创建快照,并将其作为简单 .png 图像包括在 KML 输出中。 | Long |
ignore_zvalue (可选) |
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 LayerToKML 函数。
import arcpy
# "buildings" represents a layer in your Table of Contents
arcpy.LayerToKML_conversion("buildings", "c:/outputKMZs/bldg.kmz")
以下 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):
# Execute LayerToKML arcpy.LayerToKML_conversion(layer, outKML, scale, composite, '', pixels, dpi, clamped)
else:
arcpy.AddMessage('There are no layer files in {}'.format(arcpy.env.workspace))
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是