描述
将地图转换为包含几何和符号系统的 KML 文件。输出文件采用 ZIP 压缩方式压缩,具有 .kmz 扩展名,并且可以由任何 KML 客户端读取,包括 ArcGIS Earth 和 Google Earth。
使用方法
可通过以下两种方式控制 KML 的外观:
如果地图具有与比例相关的图层显示属性并且用户选择了合适的地图输出比例,则可减小输出 KMZ 文档的大小。
所有 .kml 和 .kmz 文件均采用 WGS84 坐标系进行创建。如果图层未采用 WGS84 坐标,请确保它们正确投影。如果投影需要变换,可使用投影工具在 KML 转换前重新投影数据。
要输出叠加在地形上方的单一栅格图像,请使用返回单一合成图像参数。
要将每个图层输出为单独的栅格图像,使用矢量转栅格参数。
地图输出比例和返回图像的大小(像素)参数一起用于创建切片输出。例如,对于大小为 7000 x 5000 像素且返回图像的大小(像素)参数值为 1000 像素的图像,输出图像将由 7 x 5 或 35 个子图像组成。如果将地图输出比例参数值设置为 1,则每个子图像将为 1000 x 1000 像素。如果将地图输出比例参数值设置为 10,则每个子图像将为 100 x 100 像素。
语法
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})
参数 | 说明 | 数据类型 |
in_map | 要转换为 KML 的地图、场景或底图。 | Map |
out_kmz_file | 输出 KML 文件。该文件是压缩文件,扩展名为 .kmz。任何 KML 客户端都可读取该文件,包括 ArcGIS Earth 和 Google Earth。 | 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 (可选) | 待导出区域的地理范围。将矩形范围边界指定为按左下右上的形式(x-min、y-min、x-max、y-max)以空格分隔的 WGS84 地理坐标字符串。
| Extent |
image_size (可选) | 地图输出比例参数值设置为大于或等于 1 的值时,栅格图层的切片大小。此参数仅对栅格图层有效。 | Long |
dpi_of_client (可选) | 输出 KML 文档中所有栅格的设备分辨率。典型的屏幕分辨率是 96 dpi。如果地图中的数据支持高分辨率并且 KML 需要高分辨率,则考虑增加该值。可将该参数与返回图像的大小(像素)参数一起用于控制输出图像分辨率。默认值为 96。 | Long |
ignore_zvalue (可选) | 指定是否将要素强制固定于地面。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 MapToKML 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.MapToKML_conversion("cities.mapx", "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'
#Execute MapToKML
arcpy.MapToKML_conversion(map_file, outKML, scale, composite,
vector, '', pixels, dpi, clamped)
else:
arcpy.AddMessage('There are no map files (*.mapx) in {}'.format(arcpy.env.workspace))
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是