KML vers couche (Conversion)

Résumé

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

  • 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, line, polygone ou multipatches, 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 jeu de données mosaïque à 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. Les superpositions terrestres ne sont pas converties par défaut. Utilisez l'option Inclure la superposition de sol pour créer des rasters.

    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.

  • ArcGIS Pro 1.3 intègre la prise en charge native des formats KML et KMZ comme sources de données. Pour effectuer des opérations de géotraitement sur des couches KML, elles doivent être converties en entités au sein d'une géodatabase fichier. A l'aide de l'outil KML vers couche, sélectionnez la couche KML depuis votre menu Contenu et faites-la glisser dans le paramètre Fichier KML en entrée dans l'outil. Après la conversion, effectuez les opérations de géotraitement dans la nouvelle sortie.

Syntaxe

arcpy.conversion.KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
ParamètreExplicationType de données
in_kml_file

Fichier KML ou KMZ à convertir.

File; KML Layer
output_folder

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

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.

  • 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

Sortie dérivée

NomExplicationType de données
output_layer

Fichier de couche en sortie.

Groupe de couches
out_geodatabase

Géodatabase en sortie contenant une classe d’entités au sein d’un jeu de classes d’entités.

Espace de travail

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 :
Remarque : ce script ne permet pas de conserver les fichiers de couches de l'outil KMLToLayer 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 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])

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes