KML в слой (KML To Layer) (Конвертация)

Уровень лицензии:BasicStandardAdvanced

Резюме

Конвертирует файл KML или KMZ в классы объектов и файл слоя. Файл слоя поддерживает символы, находящиеся в исходном файле KML или KMZ.

Подробнее о поддержке KML в ArcGIS

Использование

Синтаксис

KMLToLayer_conversion (in_kml_file, output_folder, {output_data}, {include_groundoverlay})
ПараметрОбъяснениеТип данных
in_kml_file

Файл KML или KMZ, который будет переведен.

File
output_folder

Целевая папка для файла базы геоданных и файла слоя (.lyr).

Folder
output_data
(дополнительно)

Имя выходной файловой базы геоданных или файла слоя (.lyr). По умолчанию используется имя входного файла KML.

String
include_groundoverlay
(дополнительно)

Включите наложение земли (растры, аэрофотоснимки и т. п.). Будьте осторожны, если KMZ ссылается на сервис, предоставляющий растровые изображения. Инструмент попытается преобразовать растровые изображения во всех доступных масштабах. Этот процесс может занять длительное время и привести к нагрузкам на сервис.

  • GROUNDOVERLAYНаложения земли включаются в выходные данные.
  • NO_GROUNDOVERLAYНаложения земли не включаются в выходные данные. Это значение используется по умолчанию.
Boolean

Пример кода

KMLToLayer — пример 1 (окно Python)

Конвертирует файл KMZ в FGDB из окна Python.

import arcpy

arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
KMLToLayer— пример 2 (автономный скрипт)

Следующий скрипт конвертирует папку с файлами KMZ или KML в соответствующую файловую базу геоданных. Затем классы объектов в этих файловых базах геоданных будут консолидированы в единую файловую базу геоданных.

Примечание. Этот скрипт не поддерживает файлы слоев из инструмента KML в слой.

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

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

Параметры среды

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013