KML vers couche (Conversion)
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 (.lyr) que vous pouvez ajouter à ArcMap 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.
Remarque :La conversion de superpositions avec l'outil KML vers couche peut prendre du temps, selon les données source. Les rasters et superpositions disponibles dans le fichier KML sont convertis. Toutes les images sont converties si un fichier KML fait référence à un service qui propose des images. La conversion d'images très détaillées risque de prendre du temps en raison de la taille des fichiers.
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
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 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.
| Boolean |
Exemple de code
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')
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