图层转 KML (转换)
摘要
此工具用于将要素或栅格图层转换为 KML 文件,其中包含 ESRI 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,具有 .kmz 扩展名,并且可以由任何 KML 客户端读取,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。
用法
可通过两种方式控制 KML 的外观。
-
如果图层具有与比例相关的显示属性并且用户选择了合适的地图输出比例,则可减小输出 KMZ 文档的大小。
-
在 WGS84 坐标系中创建所有 KML/KMZ 文件。您需要确保图层会正确投影(如果图层没在 WGS84 中)。如果投影需要变换,可使用投影工具在 KML 转换前重新投影数据。
-
要输出叠加在地形上方的单一栅格图像,请使用返回单一合成图像选项。
语法
参数 | 说明 | 数据类型 |
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 (可选) |
| Boolean |
boundary_box_extent (可选) |
待导出区域的地理范围。矩形范围边界应按左下右上形式(xmin、ymin、xmax、ymax)以空格分隔的 WGS84 地理坐标字符串进行指定。 | Extent |
image_size (可选) |
定义输出 KML 文档中所有栅格的垂直和水平分辨率。将该参数与 DPI 参数配合使用可控制输出图像的分辨率。 | Long |
dpi_of_client (可选) |
定义输出 KML 文档中所有栅格的设备分辨率。将该参数与图像大小参数配合使用可控制输出图像的分辨率。 | Long |
ignore_zvalue (可选) |
| Boolean |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用 LayerToKML 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.LayerToKML_conversion("bldg.lyr", "bldg.kmz")
以下 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+'.')