地图转 KML (转换)

许可等级:BasicStandardAdvanced

摘要

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

了解有关 ArcGIS 中 KML 支持的详细信息

用法

语法

MapToKML_conversion (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}, {ignore_zvalue})
参数说明数据类型
in_map_document

要转换为 KML 的地图文档。

ArcMap Document
data_frame

要转换为 KML 的地图文档的数据框。

String
out_kmz_file

待写入的 KML 文件。该文件是压缩文件,扩展名为 .kmz。任何 KML 客户端都可读取该文件,包括 ArcGIS Explorer、ArcGlobe 和 Google 地球。

File
map_output_scale
(可选)

导出地图中的每个图层时所使用的比例。此参数对任何比例可变选项都很重要,例如图层可见性或按比例渲染。如果此图层在导出比例下不可见,则其不会包含在已创建的 KML 文件中。如果没有比例可变选项,则可使用任何值(例如 1)。

如果导出将以 3D 矢量形式显示的图层并且将 is_composite 参数设置为 NO_COMPOSITE,则只要要素不具有任何取决于比例的渲染,您就可以将此参数设置为任何值。

仅应输入数字字符;例如,输入 20000 作为比例,而不能输入 1:20000 或 20,000。

Double
is_composite
(可选)
  • COMPOSITE指定输出 KML 文件仅包含由此地图中的所有要素合成的单一个栅格图像。栅格以 KML GroundOverlay 形式悬在地形上方。选择该选项可减小输出 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
(可选)

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

Extent
image_size
(可选)

以像素为单位返回图像的大小。定义输出 KML 文档中所有栅格的垂直和水平分辨率。将该参数与 DPI 参数配合使用可控制输出图像的分辨率。

Long
dpi_of_client
(可选)

定义输出 KML 文档中所有栅格的设备分辨率。典型的屏幕分辨率是 96 dpi。如果地图内的数据支持高分辨率并且 KML 需要高分辨率,则考虑增加值。将该参数与图像大小参数配合使用可控制输出图像的分辨率。

Long
ignore_zvalue
(可选)
  • ABSOLUTE创建 KML 时使用要素的 Z 值。将在 KML 客户端中相对于海平面绘制要素。
  • CLAMPED_TO_GROUND覆盖要素中的 Z 值并使用固定于地面的要素创建 KML。要素将被叠加到 terrain 上。此设置适用于不具有 Z 值的要素。这是默认设置。
Boolean

代码实例

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

以下 Python 窗口脚本演示了如何在即时模式下使用 MapToKML 函数。

import arcpy
from arcpy import env

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

以下 Python 脚本演示了如何在独立脚本中使用 MapToKML 函数。

'''*********************************************************************
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)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 是
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014