Сводка
Конвертирует файл KML или KMZ в классы объектов и файл слоя. Файл слоя поддерживает символы, находящиеся в исходном файле KML или KMZ.
Использование
Этот инструмент создает файловую базу геоданных, содержащую класс пространственных объектов в наборе классов объектов. Имя класса объектов будет задано как point, line, polygon или multipatches, в зависимости от исходных объектов файла KML. Файл слоя будет располагаться на том же уровне, что и файловая база геоданных. Файл может быть добавлен на карту для отображения объектов. Этот файл слоя отображает объекты на основе их схемы точки, линии или полигона, сохраняя при этом исходные символы KML.
Каждый созданный класс объектов будет иметь атрибуты, содержащие информацию об исходном файле KML. Атрибуты каждого объекта состоят из следующих элементов: структура и имя исходной папки, всплывающая информация, а также поля, которые позволяют определить, как объекты размещаются на поверхности.
Растры или наложения земли будут конвертированы в набор данных мозаики внутри файла базы геоданных. Исходный растр в родном формате доступен в папке GroundOverlays на том же уровне, что и выходная файловая база геоданных. Покрытие снимками по умолчанию не конвертируется. Используйте опцию Включить покрытие снимками, чтобы создать растры.
Примечание:
Конвертация покрытий снимками с помощью инструмента KML в слой может занять длительное время в зависимости от исходных данных. Все доступные растры и покрытия в KML будут конвертированы. Все изображения будут конвертированы в том случае, если KML ссылается на сервис, предоставляющий изображения. Изображения высокой детальности могут конвертироваться длительное время вследствие большого размера файлов.
Выходные данные будут создаваться в системе координат WGS84. При необходимости выходные объекты могут быть проецированы в другую систему координат с помощью инструмента Проецировать.
Наиболее органично поддерживается ввод в KMZ версии 2.2 стандарта OGC KML. Положения точек, использующие тег адреса (путем геокодирования), не поддерживаются. В исходном KML требуется наличие допустимого положения, выраженного в виде широты и долготы.
Версия ArcGIS Pro 1.3 представляет встроенную поддержку KML и KMZ в качестве источников данных. Для выполнения операций геообработки со слоем KML необходимо предварительно конвертировать его в объекты в файловой базе геоданных. С помощью инструмента KML в слой выберите KML из меню Ресурсы и перетащите его в параметр Входной файл KML. После конвертации вы можете использовать результаты в операциях геообработки.
Синтаксис
arcpy.conversion.KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
Parameter | Объяснение | Тип данных |
in_kml_file | Файл KML или KMZ для конвертации. | File; KML Layer |
output_folder | Целевая папка для файла базы геоданных и файла слоя (.lyrx). | Folder |
output_data (Дополнительный) | Имя выходной файловой базы геоданных и файла слоя. По умолчанию используется имя входного файла KML. | String |
include_groundoverlay (Дополнительный) | Включить покрытие снимками (растры, аэрофотоснимки и т. п.) Используйте с осторожностью, если KMZ ссылается на сервис, предоставляющий растровые изображения. Инструмент попытается преобразовать растровые изображения во всех доступных масштабах. Этот процесс может занять длительное время и привести к нагрузкам на сервис.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
output_layer | Выходной файл слоя. | Составной слой |
out_geodatabase | База данных, содержащая класс пространственных объектов внутри набора классов объектов. | Рабочая область |
Пример кода
Конвертирует файл KMZ в базу геоданных из окна Python.
import arcpy
arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
Следующий скрипт конвертирует папку с файлами KMZ или KML в соответствующую файловую базу геоданных. Затем классы объектов в этих файловых базах геоданных будут консолидированы в единую файловую базу геоданных.
Примечание:
Этот скрипт не поддерживает файлы слоев из инструмента KMLToLayer.# 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])
Environments
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да