标注 | 说明 | 数据类型 |
输入地图 | 将转换为 KML 的地图、场景或底图。 | Map |
输出文件 (KMZ) | 输出 KML 文件,经过压缩并具有 .kmz 扩展名。 | File |
地图输出比例 (可选) |
将导出地图中每个图层的比例。 此参数对任何比例可变选项都很重要,例如图层可见性或按比例渲染。 如果图层在输出比例下不可见,则其不会包含在输出 KML 中。 如果没有比例相关选项,则可使用任何值(例如 1)。 对于栅格图层,可以将值 0 用来创建一个未平铺输出图像。 如果使用大于或等于 1 的值,则由该值确定栅格的输出分辨率。 此参数对栅格图层以外的图层无效。 仅接受数字字符;例如,输入 20000 作为比例,而不是 1:20000。 在使用逗号作为小数点的语言中,也可以输入 20,000。 如果要导出将以 3D 矢量形式显示的图层并且选中返回单一合成图像参数,则只要要素不具有任何取决于比例的渲染,您就可以将此参数设置为任何值。 | Double |
返回单一合成图像 (可选) | 指定输出 KML 将包含单个合成图像还是单独的图层。
| Boolean |
将要素转换为图像 (可选) | 指定是将地图中的每个要素图层转换为单独的栅格图像,还是将其保留为要素。 如果选中返回单一合成图像参数,则不会使用此参数。
| Boolean |
范围 (可选) | 要转换的图层的地理范围。 输出 KML 中仅包含此范围中的要素或栅格像元。
| Extent |
返回图像的大小(像素) (可选) | 地图输出比例参数值大于或等于 1 时,栅格图层的切片大小。 此参数对栅格图层以外的图层无效。 | Long |
输出图像 DPI (可选) | 输出 KML 文档中所有栅格的设备分辨率。 典型的屏幕分辨率是 96 dpi。 如果地图内的数据支持高分辨率并且 KML 需要高分辨率,则考虑增加值。 可将该参数与返回图像的大小(像素)参数一起用于控制输出图像分辨率。 默认值为 96。 | Long |
将要素强制固定于地面 (可选) | 指定是否将忽略输入要素的 z 值以及是否在地面高程处定位或强制固定所有要素。
| Boolean |
图例布局源 (可选) | 包含将作为屏幕叠加层包含在 KML 输出中的图例元素的布局名称。 | String |
摘要
用于将包含要素或栅格图层的地图转换为 KML 格式(.kmz 文件)。 输出 KML 将包含 Esri 要素几何、栅格像元、图层符号系统和其他属性的转换。
使用情况
输出 .kmz 文件为包含 .kml 文件和其他补充文件的存档或 .zip 文件。 许多应用程序(包括 ArcGIS Earth 和 Google Earth)都可以读取 .kmz 文件。
可通过以下两种方式控制 KML 的外观:
-
如果输入具有与比例相关的显示属性,请通过提供相应的地图输出比例参数值来减小输出 .kmz 文件的大小。
输入地图的图层将投影到 WGS84,因为所有 .kmz 文件都必须使用该坐标系。 要确保投影能够准确定位要素和栅格像元,可能需要指定地理变换环境。 或者,在转换为 KML 之前,请使用投影工具,通过有效的转换将地图的图层重新投影到 WGS84。
地图输出比例和返回图像的大小(像素)参数一起用于创建切片输出。 例如,对于大小为 7000 x 5000 像素且返回图像的大小(像素)参数值为 1000 像素的图像,输出图像将由 7 x 5 或 35 个子图像组成。 如果地图输出比例参数值为 1,则每个子图像将为 1000 x 1000 像素。 如果地图输出比例参数值为 10,则每个子图像将为 100 x 100 像素。
要将图例作为屏幕叠加层包含在输出 KML 中,需要为图例布局源参数指定值。 您的地图布局中必须包含一个图例元素。
仅图例元素会成为 KML 中的屏幕叠加层。 查看 KML 数据时,每个图例都将成为主 KML 文件夹下的子文件夹。
参数
arcpy.conversion.MapToKML(in_map, out_kmz_file, {map_output_scale}, {is_composite}, {is_vector_to_raster}, {extent_to_export}, {image_size}, {dpi_of_client}, {ignore_zvalue}, {layout})
名称 | 说明 | 数据类型 |
in_map | 将转换为 KML 的地图、场景或底图。 | Map |
out_kmz_file | 输出 KML 文件,经过压缩并具有 .kmz 扩展名。 | File |
map_output_scale (可选) |
将导出地图中每个图层的比例。 此参数对任何比例可变选项都很重要,例如图层可见性或按比例渲染。 如果图层在输出比例下不可见,则其不会包含在输出 KML 中。 如果没有比例相关选项,则可使用任何值(例如 1)。 对于栅格图层,可以将值 0 用来创建一个未平铺输出图像。 如果使用大于或等于 1 的值,则由该值确定栅格的输出分辨率。 此参数对栅格图层以外的图层无效。 仅接受数字字符;例如,输入 20000 作为比例,而不是 1:20000。 在使用逗号作为小数点的语言中,也可以输入 20,000。 如果要导出将以 3D 矢量形式显示的图层并且将 is_composite 参数设置为 NO_COMPOSITE,则只要要素不具有任何取决于比例的渲染,您就可以将此参数设置为任何值。 | Double |
is_composite (可选) | 指定输出 KML 将包含单个合成图像还是单独的图层。
| Boolean |
is_vector_to_raster (可选) | 指定是将地图中的每个要素图层转换为单独的栅格图像,还是将其保留为要素。 如果 is_composite 参数设置为 COMPOSITE,则不会使用此参数。
| Boolean |
extent_to_export (可选) | 要转换的图层的地理范围。 输出 KML 中仅包含此范围中的要素或栅格像元。 可以使用以下选项指定该范围:
| Extent |
image_size (可选) | map_output_scale 参数值大于或等于 1 时,栅格图层的切片大小。 此参数对栅格图层以外的图层无效。 | Long |
dpi_of_client (可选) | 输出 KML 文档中所有栅格的设备分辨率。 典型的屏幕分辨率是 96 dpi。 如果地图内的数据支持高分辨率并且 KML 需要高分辨率,则考虑增加值。 将该参数与 image_size 参数配合使用可控制输出图像的分辨率。 默认值为 96。 | Long |
ignore_zvalue (可选) | 指定是否将忽略输入要素的 z 值以及是否在地面高程处定位或强制固定所有要素。
| Boolean |
layout (可选) | 包含将作为屏幕叠加层包含在 KML 输出中的图例元素的布局名称。 | String |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 MapToKML 函数。
import arcpy
arcpy.conversion.MapToKML("C:/Maps/Cities.mapx", "C:/OutputMaps/Cities.kmz")
以下 Python 脚本演示了如何在独立脚本中使用 MapToKML 函数。
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Use ListFiles to identify all map files in workspace
files = arcpy.ListFiles('*.mapx')
if len(files) > 0:
for map_file in files:
# Set Local Variables
composite = 'NO_COMPOSITE'
vector = 'VECTOR_TO_VECTOR'
pixels = 2048
dpi = 96
clamped = 'ABSOLUTE'
for scale in range(10000, 20000, 30000):
# Strips the '.mapx' part of the name and appends '.kmz'
outKML = map_file[:-5]+'.kmz'
# Run MapToKML
arcpy.conversion.MapToKML(map_file, outKML, scale, composite,
vector, '', pixels, dpi, clamped)
else:
arcpy.AddMessage('There are no map files (*.mapx) in {}.'.format(arcpy.env.workspace))