KML vers couche (Conversion)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Convertit un fichier KML ou KMZ en classes d'entités et fichier de couches. Le fichier de couche conserve la symbologie du fichier KML ou KMZ d'origine.

En savoir plus sur la prise en charge de KML dans ArcGIS

Utilisation

Syntaxe

KMLToLayer_conversion (in_kml_file, output_folder, {output_data}, {include_groundoverlay})
ParamètreExplicationType de données
in_kml_file

Fichier KML ou KMZ à convertir.

File
output_folder

Dossier de destination de la géodatabase fichier et du fichier de couches (.lyr).

Folder
output_data
(Facultatif)

Nom de la géodatabase fichier en sortie et fichier de couche (.lyr). Le nom du fichier KML en entrée est choisi par défaut.

String
include_groundoverlay
(Facultatif)

Inclut des superpositions terrestres (raster, photos aériennes, etc.). Soyez prudent si le fichier KMZ désigne un service qui propose des images raster. L'outil essaie de traduire les images raster à toutes les échelles disponibles. Ce processus risque de prendre du temps et d'encombrer le service.

  • GROUNDOVERLAYLes superpositions terrestres sont incluses dans la sortie.
  • NO_GROUNDOVERLAYLes superpositions terrestres ne sont pas incluses dans la sortie. Il s'agit de l'option par défaut.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil KMLToLayer (fenêtre Python)

Convertit un fichier KMZ en FGDB à partir de la fenêtre Python.

import arcpy

arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
Exemple 2 d'utilisation de l'outil KMLToLayer (script autonome)

Le script suivant convertit un dossier de fichiers KMZ et KML vers leurs géodatabases fichier respectives. Les classes d'entités figurant à l'intérieur de ces géodatabases fichier sont alors regroupées en une seule géodatabase fichier.

Remarque : ce script ne permet pas de conserver les fichiers de couches de l'outil KML vers couche.

# 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 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: " + 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 = fgdb + os.sep + 'Placemarks' + os.sep + fc    
    arcpy.FeatureClassToFeatureClass_conversion(fcCopy, MasterGDBLocation, fgdb[fgdb.rfind(os.sep)+1:-4] + "_" + fc)
  

# Clean up
del kmz, wks, fc, featureClasses, fgdb

Environnements

Thèmes connexes

Informations de licence

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