地图转 KML (3D Analyst)

摘要

此工具用于将地图文档转换为 KML 文件,其中包含 ESRI 几何和符号系统的转换。该文件采用 ZIP 压缩方式压缩,其扩展名为 .kmz,任何 KML 客户端都可以读取该文件,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。

旧版本旧版本:

此工具以前位于“3D 分析”工具箱中。

用法

语法

MapToKML_3d (in_map_document, data_frame, out_kmz_file, map_output_scale, {is_composite}, {is_vector_to_raster}, {extent_to_export}, {image_size}, {dpi_of_client})
参数说明数据类型
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
(可选)
  • COMPOSITE指定输出 KML 文件仅包含由此地图中的所有要素合成的单一个栅格图像。栅格以 KML GroundOverlay 形式悬在 terrain 上方。选择该选项可减小输出 KML 文件的大小。选中该复选框时,KML 中的各要素和图层将不可选择。此外,还将忽略下一个参数“is_vector_to_raster”。
  • NO_COMPOSITE在 KML 中单独返回各图层。是全部以栅格形式还是以矢量和栅格的混合形式返回图层由下一个参数“is_vector_to_raster”决定。
Boolean
is_vector_to_raster
(可选)
  • VECTOR_TO_RASTER在 KML 输出中将地图中的各矢量图层转换为独立的栅格图像。正态栅格图层也将被添加到 KML 输出中。各输出 KML 栅格图层为可选状态,并且可以在特定 KML 客户端中调整其透明度。
  • VECTOR_TO_VECTOR以 KML 矢量形式保留地图中的矢量图层。
Boolean
extent_to_export
(可选)

待导出区域的地理范围。范围矩形边界应按“左下右上”形式以空格分隔的 WGS84 地理坐标字符串进行指定。

Extent
image_size
(可选)

返回图像的大小,以像素为单位(可选):定义输出 KML 文档中任何栅格的垂直和水平分辨率。

Long
dpi_of_client
(可选)

定义输出 KML 文档中任何栅格的设备分辨率。

Long

代码示例

“地图转 KML”示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在立即模式中使用地图转 KML 函数。

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.MapToKML_3d("city.mxd", "Layers", "city.kmz", "1")
“地图转 KM”示例 2(独立脚本)

以下 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)


    

环境

许可信息

ArcView: 需要 3D Analyst
ArcEditor: 需要 3D Analyst
ArcInfo: 需要 3D Analyst

7/10/2012