LayerFile

描述

可访问图层文件(.lyr.lyrx)中的图层并且可访问其他基本图层管理方法。

讨论

LayerFile 类提供的方法和属性可访问图层文件中的单个图层。图层文件可包含一个或多个图层,这些图层可包括图层组。

ArcGIS Pro 应用程序可读取 .lyr.lyrx 图层文件类型。更改只能保存为 .lyrx 图层文件类型。如果要对 .lyr 文件进更改,则需要调用 saveACopy 方法。

属性

属性说明数据类型
filePath
(只读)

返回报告完全限定的图层文件路径和文件名的字符串值。

String
metadata
(可读写)

获取或设置图层文件的元数据类信息。请注意:设置元数据取决于 isReadOnly 属性值。

Metadata
version
(只读)

根据上次保存项目的时间返回版本字符串。它使用语义版本化格式:Major.Minor.Patch。

String

方法概述

方法说明
addLayer (add_layer_or_layerfile, {add_position})

用于使用基本放置选项向图层文件 (.lyrx) 添加 LayerLayerFile

addLayerToGroup (target_group_layer, add_layer_or_layerfile, {add_position})

用于使用基本放置选项向图层文件 (.lyrx) 内的现有图层组添加 LayerLayerFile 的内容。

insertLayer (reference_layer, insert_layer_or_layerfile, {insert_position})

用于通过指定位置向图层文件 (.lyrx) 添加 LayerLayerFile

listBrokenDataSources ()

返回图层文件中已与其原始数据源断开连接的 Layer 对象的 Python 列表。

listLayers ({wildcard})

返回图层文件中的 Layer 对象的 Python 列表。

moveLayer (reference_layer, move_layer, {insert_position})

用于在图层堆叠中将图层文件中的图层或图层组移动到特定位置。

removeLayer (remove_layer)

用于从图层文件中移除图层。

save ()

保存对 .lyrx 文件的现有图层文件引用,即使引用的是 .lyr 文件也同样如此。

saveACopy (file_name)

LayerFile 保存到新路径或另存为新文件名。

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

使用工作空间字典或路径替换连接属性。

方法

addLayer (add_layer_or_layerfile, {add_position})
参数说明数据类型
add_layer_or_layerfile

LayerLayerFile 对象(表示要添加的单个或多个图层)的引用。

Layer
add_position

此常数用于确定添加的单个或多个图层在图层文件中的放置位置。

  • AUTO_ARRANGE基于图层权重规则和几何来自动放置单个或多个图层。
  • BOTTOM在 TOC 图层堆叠底部放置单个或多个图层。
  • TOP在 TOC 图层堆叠顶部放置单个或多个图层。

(默认值为 AUTO_ARRANGE)

String
返回值
数据类型说明
List

Layer 对象的 Python 列表。

addLayer 方法用于向图层文件添加图层或图层集合。默认 add_position 可以使用自动排列逻辑添加图层,将图层放置在地图中,这与添加数据按钮在应用程序中的工作方式相似;add_position 根据图层权重规则和几何类型放置图层。其他放置选择为放置在图层堆叠的顶部或底部。有关更精确的图层放置控制,请参阅 insertLayer 方法。

已添加的图层可以引用工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。

添加图层后,图层在内容列表 (TOC) 中的显示方式取决于源图层及其显示方式。例如,在 TOC 中,有些图层完全折叠且不显示其符号。此设置内置在图层中。如果图层折叠且保存在图层文件中,然后被添加到地图中,则通过 addLayer 添加该图层时,图层在新地图中将显示为折叠状态。

addLayerToGroup (target_group_layer, add_layer_or_layerfile, {add_position})
参数说明数据类型
target_group_layer

对现有 Layer 对象组的引用。

Layer
add_layer_or_layerfile

LayerLayerFile 对象(表示要添加的单个或多个图层)的引用。

Layer
add_position

此常数用于确定在 target_group_layer 中添加的单个或多个图层的放置位置。

  • AUTO_ARRANGE基于图层权重规则和几何来自动放置图层。
  • BOTTOM在 TOC 图层堆叠底部放置图层。
  • TOP在 TOC 图层堆叠顶部放置图层。

(默认值为 AUTO_ARRANGE)

String

addLayerToGroup 方法是向现有的空图层组添加图层或图层集合的唯一方法。默认 add_position 可以使用自动排列逻辑添加图层,将图层放置在地图中,这与添加数据按钮在应用程序中的工作方式相似;add_position 根据图层权重规则和几何类型放置图层。其他放置选择为放置在图层堆叠的顶部或底部。有关更精确的图层放置控制,请参阅 insertLayer 方法。

已添加的图层可以引用工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。

添加图层后,图层在内容列表 (TOC) 中的显示方式取决于源图层及其显示方式。例如,在 TOC 中,有些图层完全折叠且不显示其符号。此设置内置在图层中。如果图层折叠且保存在图层文件中,然后被添加到地图中,则通过 addLayerToGroup 添加该图层时,图层在新地图中将显示为折叠状态。

insertLayer (reference_layer, insert_layer_or_layerfile, {insert_position})
参数说明数据类型
reference_layer

表示可确定新图层插入位置的现有图层的 Layer 对象。

Layer
insert_layer_or_layerfile

LayerLayerFile 对象(表示要添加的单个或多个图层)的引用。

Layer
insert_position

此常数用于确定相对于 reference_layer 的单个或多个图层的放置位置。

  • AFTER在参考图层之后或下方插入新图层。
  • BEFORE在参考图层之前或上方插入新图层。

(默认值为 BEFORE)

String

因使用了 reference_layer 来指定准确位置,insertLayer 方法可在图层文件中更为精确地定位图层。可在 reference_layer 之前或之后添加图层。

如果 reference_layer 引用的是图层文件根级别的图层,则所插入的图层会添加到根级别。如果 reference_layer 引用的是图层组中的图层,则所插入的图层将添加到该图层组中。

已插入的图层可以引用工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。

添加图层后,图层在内容列表 (TOC) 中的显示方式取决于源图层及其显示方式。例如,在 TOC 中,有些图层完全折叠且不显示其符号。此设置内置在图层中。如果图层折叠且保存在图层文件中,然后被添加到地图中,则通过 insertLayer 添加该图层时,图层在新地图中将显示为折叠状态。

listBrokenDataSources ()
返回值
数据类型说明
List

Layer 对象的 Python 列表。

listBrokenDataSources 方法始终返回 Python 列表对象,即使返回一个损坏的图层或表。

listLayers ({wildcard})
参数说明数据类型
wildcard

通配符基于图层名称且不区分大小写。星号 (*) 和字符的组合可用于帮助限制生成的列表。

(默认值为 None)

String
返回值
数据类型说明
List

返回图层文件中的 Layer 对象的 Python 列表。

返回图层文件中的 Layer 对象的 Python 列表。

moveLayer (reference_layer, move_layer, {insert_position})
参数说明数据类型
reference_layer

表示可确定新图层移动位置的现有图层的 Layer 对象。

Layer
move_layer

Layer 对象(表示要移动的图层)的引用。

Layer
insert_position

此常数用于确定移动的图层相对于参考图层的放置位置。

  • AFTER将图层移动到参考图层的后面或下方。
  • BEFORE将图层移动到参考图层的前面或上方。

(默认值为 BEFORE)

String

moveLayer 方法可用于移动图层文件中的图层。move_layerreference_layer 必须位于同一图层。

removeLayer (remove_layer)
参数说明数据类型
remove_layer

引用表示要移除的图层的 Layer 对象。

Layer

removeLayer 方法将从特定图层文件中移除单个图层或图层组。如果有多个图层满足条件,则仅移除第一个图层,除非脚本会遍历返回列表中的每个图层。

save ()

对图层文件(.lyr.lyrx)的引用和标准地图图层之间存在细微的差别。只有变量引用了图层文件并且不会用于地图图层时,save 方法才会有效。从图层文件加载图层时,将记住文件名并在调用 save 方法时使用此名称。如果正在引用地图图层,最初并未设置文件名,则您将需要改用 saveACopy 方法。如果正在引用 .lyr 文件类型且已调用 save,则会将其转换为 .lyrx 文件类型。

saveACopy (file_name)
参数说明数据类型
file_name

用于将 (LayerFile) 保存到新路径或另存为新文件名的字符串。只能保存到 .lyrx 文件。

String

提供将 LayerFile 另存为其他文件名的选项。新保存的图层文件将始终保存到 .lyrx 文件。

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
参数说明数据类型
current_connection_info

用于表示工作空间路径或 Python 字典(包含要更新的源的连接属性)的字符串。

String
new_connection_info

用于表示包含连接属性与新源信息的工作空间路径或 Python 字典的字符串。

String
auto_update_joins_and_relates

如果设置为 True,则 updateConnectionProperties 方法还将更新相关连接或关联的连接。

(默认值为 True)

Boolean
validate

如果设置为 True,则仅在 new_connection_info 值为有效连接时,才会更新连接属性。如果为无效连接,则不会替换连接。如果设置为 False,则无论匹配是否有效,此方法都会将所有连接设置为匹配 new_connection_info。在这种情况下,如果匹配不存在,则将损坏数据源。

(默认值为 True)

Boolean
ignore_case

确定搜索是否区分大小写。默认情况下,查询区分大小写。要执行不区分大小写的查询,请将 ignore_case 设置为 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