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á punto, línea, polígonoo multiparches, dependientes 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.
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.
Comúnmente, 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
KMLToLayer_conversion (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 | La carpeta de destino para la geodatabase de archivos y 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 |
Ejemplo de código
Ejemplo 1 de KMLToLayer (ventana de Python)
Convierte un archivo KMZ en un FGDB desde la ventana Python.
import arcpy
arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
Ejemplo 2 de KMLToLayer (secuencia de comandos independiente)
La siguiente secuencia de comandos convierte una carpeta de archivos KML y KMZ en sus respectiva Geodatabase de archivos. Las clases de entidad dentro de estos FileGeodatabases entonces se consolidan en una sola FileGeodatabase.Nota: esta secuencia de comandos no mantiene los archivos de capa desde la herramienta De KML a capa.
# 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 featureclases
# Import system models
import arcpy, os
# Set workspace (where all the KMLs are)
arcpy.env.workspace="C:/VancouverData/KML"
# Set local variables and location for the consolidated file geodatabase
outLocation = "C:/WorkingData/fGDBs"
MasterGDB = 'AllKMLLayers.gdb'
MasterGDBLocation = os.path.join(outLocation, MasterGDB)
# Create the master FileGeodatabase
arcpy.CreateFileGDB_management(outLocation, MasterGDB)
# 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, outLocation)
# Change the workspace to fGDB location
arcpy.env.workspace = outLocation
# Loop through all the FileGeodatabases within the workspace
wks = arcpy.ListWorkspaces('*', 'FileGDB')
# Skip the Master GDB
wks.remove(MasterGDBLocation)
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
featureClasses = arcpy.ListFeatureClasses('*', '', 'Placemarks')
for fc in featureClasses:
print ("COPYING: {0} FROM: {1}".format(fc, fgdb))
fcCopy = os.path.join(fgdb, 'Placemarks', fc)
arcpy.FeatureClassToFeatureClass_conversion(fcCopy, MasterGDBLocation, fgdb[fgdb.rfind(os.sep)+1:-4])
# Clean up
del kmz, wks, fc, featureClasses, fgdb
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: Sí
- ArcGIS for Desktop Standard: Sí
- ArcGIS for Desktop Advanced: Sí