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.
Utilisation
Cet outil crée une géodatabase fichier qui contient une classe d'entités dans un jeu de données d'entité. Le nom de la classe d'entités peut être point, ligne, polygone ou multipatch selon les entités d'origine du fichier KML. Il existe au même niveau de dossier que la géodatabase fichier un fichier de couche que vous pouvez ajouter à une carte pour dessiner les entités. Ce fichier de couche dessine des entités en fonction de leur structure de points, de lignes ou de polygones, tout en conservant la symbologie KML d'origine.
Chaque classe d’entités créée présente des attributs qui conservent des informations propres au fichier KML d'origine. La structure des dossiers d'origine, le nom et les informations contextuelles, ainsi que les champs qui permettent de définir la position des entités sur une surface, constituent les attributs de chaque entité.
Les rasters ou les superpositions terrestres sont convertis en un catalogue d'images à l'intérieur de la géodatabase fichier. Le raster source au format natif est disponible dans le dossier GroundOverlays au même niveau que la géodatabase fichier en sortie.
La sortie est générée dans le système de coordonnées WGS84. Vous pouvez le cas échéant reprojeter les entités en sortie dans un autre système de coordonnées à l'aide de l'outil Projeter.
Il est possible de spécifier en entrée des fichiers KMZ, versions 2.2 et antérieures de la norme OGC KML. Les emplacements des points qui font appel à des balises d'adresses (par géocodage) ne sont pas pris en charge. L'emplacement doit être spécifié en termes de latitude et de longitude dans le fichier KML source.
Syntaxe
KMLToLayer_conversion (in_kml_file, output_folder, {output_data}, {include_groundoverlay})
Paramètre | Explication | Type 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 du fichier de couche. Par défaut, le nom du fichier KML en entrée est utilisé. | 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.
| 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 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
Environnements
Informations de licence
- ArcGIS for Desktop Basic: Oui
- ArcGIS for Desktop Standard: Oui
- ArcGIS for Desktop Advanced: Oui