地图转 KML (转换)
摘要
此工具用于将地图文档转换为 KML 文件,其中包含 ESRI 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,其扩展名为 .kmz,任何 KML 客户端都可以读取该文件,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。
此工具以前位于“3D 分析”工具箱中。
用法
-
输出 KMZ 文件不能已经存在。
-
如果地图具有与比例相关的渲染器并且用户选择了合适的地图输出比例,则可减小输出 KMZ 文档的大小。
-
要输出叠加在地形上方的单一栅格图像,请使用返回单一合成图像选项。
-
要将每个图层输出为单独的栅格图像,请使用矢量转栅格选项。
语法
参数 | 说明 | 数据类型 |
in_map_document |
要转换为 KML 的地图文档。 | Feature layer |
data_frame |
要转换为 KML 的地图文档的数据框。 | Data frame |
out_kmz_file |
待写入的 KML 文件。该文件是压缩文件,扩展名为 .kmz。任何 KML 客户端都可读取该文件,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。 | KML file |
map_output_scale |
导出地图文档时使用的比例。将遵守所有与比例相关的渲染,因此,在导出比例下不可见的图层不会包含在创建的 KML 文件中。由于地图的符号由该比例控制,因此如果地图具有已定义的参考比例,则在设置此参数时应予以考虑。 仅应输入数字字符。例如,输入“20000”作为比例,而不能输入 1:20,000 或 20,000。 此外,如果要导出的地图仅包含将显示为 3D 矢量的图层,并且未定义任何与比例相关的渲染,则导出过程不需要使用此参数,可将其设置为任意数值,例如 1。 | Double |
is_composite (可选) |
| Boolean |
is_vector_to_raster (可选) |
| Boolean |
extent_to_export (可选) | 待导出区域的地理范围。范围矩形边界应按“左下右上”形式以空格分隔的 WGS84 地理坐标字符串进行指定。 | Extent |
image_size (可选) |
返回图像的大小,以像素为单位(可选):定义输出 KML 文档中任何栅格的垂直和水平分辨率。 | Long |
dpi_of_client (可选) |
定义输出 KML 文档中任何栅格的设备分辨率。 | Long |
代码示例
以下 Python 窗口脚本演示了如何在立即模式中使用地图转 KML 函数。
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.MapToKML_3d("city.mxd", "Layers", "city.kmz", "1")
以下 Python 脚本演示了如何在独立脚本中使用地图转 KML 函数。
'''********************************************************************* Name: MapToKML Example Description: This script demonstrates how to find all map documents 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 MapToKML tool. ''' # Import system modules 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('*.mxd')) > 0: for mxd in arcpy.ListFiles('*.mxd'): # Set Local Variables dataFrame = 'Layers' composite = 'NO_COMPOSITE' vector = 'VECTOR_TO_VECTOR' pixels = 2048 dpi = 96 clamped = 'ABSOLUTE' for scale in range(10000, 30001, 10000): # Strips the '.mxd' part of the name and appends '.kmz' outKML = mxd[:-4]+'.kmz' #Execute MapToKML arcpy.MapToKML_conversion(mxd, dataFrame, outKML, scale, composite, vector, '', pixels, dpi, clamped) else: arcpy.AddMessage('There are no map documents (*.mxd) in '+env.workspace)