Resumen
Convierte un archivo KML o KMZ en clases de entidad y un archivo de capa. El archivo de capa mantiene la simbología que se encuentra en el archivo KMZ o KML original.
Obtenga más información sobre la compatibilidad KML en ArcGIS
Uso
Esta herramienta crea una geodatabase de archivos que contiene una clase de entidad dentro de un dataset de entidades. El nombre de clase de entidad se denominará point, line, polígono o multipatches, en función de las entidades originales del archivo KML. A nivel de la misma carpeta que la geodatabase de archivos habrá un archivo de capa que se puede agregar a un mapa para dibujar las entidades. Este archivo de capa se dibuja las entidades basadas en su esquema de punto, de línea o de polígono, mientras mantiene la simbología original de KML.
Cada clase de entidad creada tendrá atributos que mantienen la información sobre el archivo KML original. La estructura de carpeta original, el nombre y la información emergente, así como los campos que ayudarán a definir la forma en que las entidades se sitúan en una superficie, conforman los atributos de cada entidad.
Los rásteres o las superposiciones terrestres se convertirán en un catálogo de ráster dentro de la geodatabase de archivos. El ráster de origen en su formato nativo está disponible en una carpeta de GroundOverlays en el mismo nivel que la geodatabase de archivos de salida. Las superposiciones terrestres no se convierten de forma predeterminada. Utilice la opción Incluir la superposición de terrenos para crear rásteres.
La salida se generará en el sistema de coordenadas WGS84. Las entidades de salida se pueden volver a proyectar en otro sistema de coordenadas si así lo desea con la herramienta Proyectar.
Por lo general, es compatible con la entrada de KMZ hasta la versión 2.2 de OGC KML estándar. Las ubicaciones de puntos que utilizan la etiqueta de dirección (a modo de geocodificación) no son compatibles. Se requiere de valores válidos de latitud y longitud de la ubicación dentro del KML de origen.
Sintaxis
arcpy.conversion.KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
Parámetro | Explicación | Tipo de datos |
in_kml_file | El archivo KML o KMZ a traducir. | File |
output_folder | Carpeta de destino para la geodatabase de archivos y el archivo de capa (.lyr). | Folder |
output_data (Opcional) | El nombre de la geodatabase de archivos de salida y el archivo de capa. El valor predeterminado es el nombre del archivo KML de entrada. | String |
include_groundoverlay (Opcional) | Incluye la superposición terrestre (ráster, fotografías aéreas y así sucesivamente). Tenga precaución si el KMZ apunta a un servicio de imágenes ráster. La herramienta intentará traducir las imágenes ráster en todas las escalas disponibles. Este proceso podría ser prolongado y posiblemente desbordar el servicio.
| Boolean |
Salida derivada
Nombre | Explicación | Tipo de datos |
output_layer | El archivo de capa de salida. | Grupo de capas |
out_geodatabase | La geodatabase de salida que contiene una clase de entidad dentro de un dataset de entidades. | Espacio de trabajo |
Muestra de código
Ejemplo 1 de KMLToLayer (ventana de Python)
Convierte un archivo KMZ en una geodatabase de archivos desde la ventana Python.
import arcpy
arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
Ejemplo 2 de KMLToLayer (script independiente)
El siguiente script convertirá una carpeta de archivos KML y KMZ en sus respectivas geodatabases de archivos. Las clases de entidad contenidas en esas geodatabases de archivos se consolidarán en una sola geodatabase de archivos.
# Name: BatchKML_to_GDB.py
# Description: Converts a directory of KMLs and copies the output into a single
# fGDB. A 2 step process: first convert the KML files, and then
# copy the feature classes.
# Import system modules
import arcpy
import os
# Set workspace (where all the KMLs are)
arcpy.env.workspace = "C:/VancouverData/KML"
# Set local variables and location for the consolidated file geodatabase
out_location = "C:/WorkingData/fGDBs"
gdb = 'AllKMLLayers.gdb'
gdb_location = os.path.join(out_location, gdb)
# Create the master FileGeodatabase
arcpy.CreateFileGDB_management(out_location, gdb)
# Convert all KMZ and KML files found in the current workspace
for kmz in arcpy.ListFiles('*.KM*'):
print("CONVERTING: {0}".format(os.path.join(arcpy.env.workspace, kmz)))
arcpy.KMLToLayer_conversion(kmz, out_location)
# Change the workspace to fGDB location
arcpy.env.workspace = out_location
# Loop through all the FileGeodatabases within the workspace
wks = arcpy.ListWorkspaces('*', 'FileGDB')
# Skip the Master GDB
wks.remove(gdb_location)
for fgdb in wks:
# Change the workspace to the current FileGeodatabase
arcpy.env.workspace = fgdb
# For every Featureclass inside, copy it to the Master and use the name
# from the original fGDB
feature_classes = arcpy.ListFeatureClasses('*', '', 'Placemarks')
for fc in feature_classes:
print("COPYING: {} FROM: {}".format(fc, fgdb))
fcCopy = os.path.join(fgdb, 'Placemarks', fc)
arcpy.FeatureClassToFeatureClass_conversion(
fcCopy, gdb_location, fgdb[fgdb.rfind(os.sep) + 1:-4])
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí