Skip to main content

addLayer

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

Предоставляет доступ к слоям в файле слоя (.lyr или .lyrx) и другим основным методам управления слоями.

Обсуждение

Класс LayerFile предоставляет методы и свойства, обеспечивающие доступ к отдельным слоям и таблицам, содержащимся в файле слоя. Файлы слоев могут содержать один или несколько слоев, таблиц и составных слоев.

ArcGIS Pro может читать файлы слоев .lyr и .lyrx. Изменения можно сохранять только в файл .lyrx. Если вы вносите изменения в файл .lyr, нужно вызвать метод saveACopy.

Синтаксис

addLayer()

Свойства

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

filePath

(Только для чтения)

Возвращает строковое значение, содержащее полное имя и путь к файлу слоя.

String

metadata

(Чтение / Запись)

Получите или настройте информацию о классе Metadata. Обратите внимание, что настройка метаданных зависит от значения свойства isReadOnly.

Metadata

version

(Только для чтения)

Возвращает строку для версии на основе того, когда проект был сохранен в последний раз. Используется семантический формат версии: Major.Minor.Patch.

String

Методы

addLayer(add_layer_or_layerfile, {add_position})

Обеспечивает возможность добавления Layer или LayerFile в файл слоя (.lyrx) с использованием базовых опций размещения.

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

add_layer_or_layerfile

Ссылка на объект Layer или LayerFile представляющий слой или слои, которые должны быть добавлены.

Layer

add_position

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

Константа, определяющая размещение добавленного слоя или слоев в файл слоя.

  • AUTO_ARRANGE—Автоматически размещает слой или слои с учетом правил определения веса слоя и геометрии.

  • BOTTOM—Размещает слой или слои в нижней части стека слоев таблицы содержания (TOC).

  • TOP—Размещает слой или слои в верхней части стека слоев таблицы содержания (TOC).

(Значение по умолчанию — AUTO_ARRANGE)

String

Возвращаемое значение

Тип данных Объяснение

List

Список Python объектов Layer.

addLayerToGroup(target_group_layer, add_layer_or_layerfile, {add_position})

Обеспечивает возможность добавления Layer или содержания LayerFile к существующему составному слою в файле слоя (.lyrx) с использованием базовых опций размещения.

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

target_group_layer

Ссылка на существующий составной объект Layer (Слой).

Layer

add_layer_or_layerfile

Ссылка на объект Layer или LayerFile представляющий слой или слои, которые должны быть добавлены.

Layer

add_position

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

Константа, определяющая размещение добавленного слоя или слоев в target_group_layer.

  • AUTO_ARRANGE—Автоматически размещает слой с учетом правил определения веса слоя и геометрии.

  • BOTTOM—Размещает слой в нижней части стека слоев таблицы содержания (TOC).

  • TOP—Размещает слой в верхней части стека слоев таблицы содержания (TOC).

(Значение по умолчанию — AUTO_ARRANGE)

String

insertLayer(reference_layer, insert_layer_or_layerfile, {insert_position})

Обеспечивает возможность добавления Layer или LayerFile в файл слоя (.lyrx) с указанием местоположения.

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

reference_layer

Объект Layer, соответствующий существующему слою, который определяет положение, где будет вставлен новый слой.

Layer

insert_layer_or_layerfile

Ссылка на объект Layer или LayerFile представляющий слой или слои, которые должны быть добавлены.

Layer

insert_position

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

Константа, определяющая размещение добавляемого слоя или слоев по отношению к reference_layer.

  • AFTER—Вставляет новый слой после базового слоя или под ним.

  • BEFORE—Вставляет новый слой перед базовым слоем или над ним.

(Значение по умолчанию — BEFORE)

String

listBrokenDataSources()

Возвращает список объектов Python Layer в файле слоя, которые имеют поврежденные подключения к оригинальным исходным данным внутри карты.

Возвращаемое значение

Тип данных Объяснение

List

Список Python объектов Layer.

listLayers({wildcard})

Возвращает список Python Слоев в файле слоя.

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

wildcard

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

A wildcard is based on the layer name and is not case sensitive. A combination of asterisks (*) and characters can be used to help limit the resulting list.

(Значение по умолчанию — None)

String

Возвращаемое значение

Тип данных Объяснение

List

Список Python объектов Layer в файле слоя.

listTables({wildcard})

Возвращает список Python объектов Table, которые существуют в LayerFile.

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

wildcard

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

A wildcard is based on the table name and is not case sensitive. A combination of asterisks (*) and characters can be used to limit the resulting list.

(Значение по умолчанию — None)

String

Возвращаемое значение

Тип данных Объяснение

List

Список Python объектов Table, в LayerFile.

moveLayer(reference_layer, move_layer, {insert_position})

Позволяет переместить слой или составной слой в файле слоя в заданное местоположение в блоке слоев.

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

reference_layer

Объект Layer, представляющий существующей слой, который определяет местоположение, в которое будет перемещен новый слой.

Layer

move_layer

Ссылка на объект Layer, представляющий слой, выбираемый для перемещения.

Layer

insert_position

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

Константа, которая определяет размещение перемещаемого слоя по отношению к базовому слою.

  • AFTER—Перемещает слой в положение за или под базовым слоем.

  • BEFORE—Перемещает слой в положение перед или над базовым слоем.

(Значение по умолчанию — BEFORE)

String

removeLayer(remove_layer)

Обеспечивает возможность удаления слоя из файла слоя.

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

remove_layer

Ссылка на объект Layer, который представляет удаляемый слой.

Layer

save()

Сохраняет ссылку на существующий файл слоя в файле .lyrx, даже если файл, на который дается ссылка, был файлом .lyr.

saveACopy(file_name)

Сохраняет LayerFile в новом месте или с другим именем.

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

file_name

Строка используется для сохранения LayerFile в новом месте или с новым именем. Вы можете сохранять только файлы с расширением .lyrx.

String

updateConnectionProperties(current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})

Метод updateConnectionProperties заменяет свойства подключения, используя словарь либо путь к рабочей области.

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

current_connection_info

A string that represents the workspace path or a Python dictionary that contains connection properties to the source you want to update. If an empty string or None is used in current_connection_info, all connection properties will be replaced with the new_workspace_info, depending on the value of the validate parameter.

String

new_connection_info

A string that represents the workspace path or a Python dictionary that contains connection properties with the new source information.

String

auto_update_joins_and_relates

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

If set to True, the updateConnectionProperties method will also update the connections for associated joins or relates.

(Значение по умолчанию — True)

Boolean

validate

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

If set to True, the connection properties will only be updated if the new_connection_info value is a valid connection. If it is not valid, the connection will not be replaced. If set to False, the method will set all connections to match the new_connection_info value, regardless of a valid match. In this case, if a match does not exist, the data sources would be broken.

(Значение по умолчанию — True)

Boolean

ignore_case

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

Determines whether searches will be case sensitive. By default, queries are case sensitive. To perform queries that are not case sensitive, set ignore_case to True.

(Значение по умолчанию — False)

Boolean

Пример кода

LayerFile, пример 1

Следующий скрипт печатает имена отдельных слоев в файле слоя, источники данных которых повреждены.

import arcpy
lyrFile = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\Yosemite.lyrx")
for lyr in lyrFile.listLayers():
    if lyr.supports("datasource"):
        if lyr.isBroken:
            print(lyr.name)
LayerFile, пример 2

Следующий скрипт удалит все слои с карты Yosemite National Park и добавит слои из файла слоя Yosemite.lyrx.

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
m = aprx.listMaps("Yosemite National Park")[0]
for lyr in m.listLayers():
    m.removeLayer(lyr)
lf = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\Yosemite.lyrx")
m.addLayer(lf)
aprx.save()
del aprx