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

Краткая информация

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

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

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

  • Этот инструмент создает файловую базу геоданных, содержащую класс пространственных объектов в наборе классов объектов. Имя класса объектов будет задано как 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. После конвертации вы можете использовать результаты в операциях геообработки.

Параметры

ПодписьОписаниеТип данных
Входной файл KML

Файл KML или KMZ для конвертации.

File; KML Layer
Выходное местоположение

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

Folder
Имя выходных данных
(Дополнительный)

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

String
Включить покрытие снимками
(Дополнительный)

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

  • Отмечено – покрытие снимками включено в выходные данные.
  • Не отмечено – покрытие снимками не включено в выходные данные. Это значение по умолчанию
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Выходной файл слоя

Выходной файл слоя.

Group Layer
Выходная файловая база геоданных

База данных, содержащая класс пространственных объектов внутри набора классов объектов.

Workspace

arcpy.conversion.KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
ИмяОписаниеТип данных
in_kml_file

Файл KML или KMZ для конвертации.

File; KML Layer
output_folder

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

Folder
output_data
(Дополнительный)

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

String
include_groundoverlay
(Дополнительный)

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

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

Производные выходные данные

ИмяОписаниеТип данных
output_layer

Выходной файл слоя.

Group Layer
out_geodatabase

База данных, содержащая класс пространственных объектов внутри набора классов объектов.

Workspace

Пример кода

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

Конвертирует файл KMZ в базу геоданных из окна Python.

import arcpy

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

Следующий скрипт конвертирует папку с файлами 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 File Geodatabase
arcpy.management.CreateFileGDB(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.conversion.KMLToLayer(kmz, out_location)

# Change the workspace to fGDB location
arcpy.env.workspace = out_location

# Loop through all the file geodatabases 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 file geodatabase
    arcpy.env.workspace = fgdb

    # For every feature class 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.conversion.FeatureClassToFeatureClass(
            fcCopy, gdb_location, fgdb[fgdb.rfind(os.sep) + 1:-4])

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

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы