Map

摘要

Map 对象是参考和管理 ArcGIS Pro 工程中的图层和表的主要对象。

说明

ArcGIS Pro 中的 Map 用于表示表格与符号化地理图层的集合,同时用于保留坐标系、默认数据视图和其他各种元数据的信息。 对地图内容进行可视化的唯一方式是在地图视图(即在具有自己的内容列表的应用程序中作为选项卡)或在布局上的地图框中进行。 可在多个地图视图或地图框中显示同一地图。 如果已将图层添加到地图,则所有引用此地图的地图视图和地图框将显示已添加的图层。 如果希望在不同视图中显示其他图层或表集合,则需要构建和使用不同的地图。

地图使用 ArcGISProject 对象中的 listMaps 函数进行访问,该函数将返回 Map 对象的 Python 列表。 需要对每个地图进行唯一命名,以轻松在使用 name 属性的 wildcard 参数中参考特定地图。 地图还可以从 MapFrame 对象使用 map 属性进行访问。

ArcGISProject 类上的 createMap 方法用于在工程中创建地图。 如果在应用程序中运行脚本,则将采用底图设置。 如果在应用程序外部运行脚本,将会自动添加地形底图并且您需要移除不需要的底图图层。

还可通过 openView 方法打开地图视图。 您可能希望在调用 openView 之前执行一些操作。 首先,在打开新视图之前设置 defaultCamera 可控制初始范围。 其次,您可能希望在打开新视图之前,使用 ArcGISProject 类上的 closeViews 方法关闭其他视图。 下面的第三个示例演示了此工作流程。

Map 对象上有许多可用方法,用于管理其表格和符号化地理图层集合。 图层和表可以在现有图层和表列表中进行添加(addLayeraddLayerToGroupaddTableinsertLayer)、移除(removeLayerremoveTable)和重新排列 (moveLayer)。 listLayerslistTables 方法为如何在地图中引用图层

所有地图都具有 mapType 属性。 该属性可以具有值 MAP(表示 2D 地图)或值 SCENE(表示 3D 地图)。 需要知道 mapType 属性的示例之一为要设置 defaultCamera 属性时。 不能将 3D Camera 对象应用于 2D 地图,反之亦然。 因此,您需要提前检查 mapType 值。

地图类还支持 getDefinitionsetDefinition 方法。 有关更详细的帮助,请参阅 Python CIM 访问

属性

属性说明数据类型
defaultCamera
(可读写)

用于获取或设置地图的默认 Camera 设置。

注:

修改 defaultCamera 将不会影响现有视图。 仅当打开新的 MapView 或将新的 MapFrame 插入布局中时,才会应用此属性。

Camera
defaultView
(只读)

与 Web 地图打印 Web 工具中的 ConvertWebMapToArcGISProject 一起使用,以返回要打印或导出的地图视图。

MapView
excludeLayersFromClipping
(可读写)

如果 clipLayers 已设置为 True,则为要从地图裁剪中排除的 Layer 对象列表。

List
mapType
(只读)

返回用于报告 Map 对象类型信息的字符串值。 如果 Map 是 2D,则返回 MAP。 如果 Map 是 3D,则返回 SCENE

String
mapUnits
(只读)

返回用于表示为 Map 设置的地图单位的字符串值。

String
metadata
(可读写)

获取或设置地图的 Metadata 类信息。

注:
设置元数据取决于 ArcGISProject isReadOnly 属性值。

Metadata
name
(可读写)

用于在 Map 对象出现在内容列表中时获取或设置其名称,同时还用于获取或设置布局内的实际元素名称。

String
referenceScale
(可读写)

用于获取或设置 Map 的参考比例。 要清除最小比例,请将值设置为 0.0

Double
spatialReference
(可读写)

用于获取或设置与地图相关联的 SpatialReference

SpatialReference
transformations
(只读)

将与地图关联的水平和垂直变换作为 Python 字典返回。 水平变换的字典键为 2D,垂直变换的字典键为 3D。 要修改现有变换,使用 updateTransformations

Dictionary
URI
(只读)

地图的统一资源指示符。 这是项目中地图的唯一标识符,使用 Python CIM access 访问时有时需要它。 添加地图并建立 URI 后,该值不会随时间变化。 例如,如果您修改地图的名称,则 URI 不会更改。

String

方法概述

方法说明
addBasemap (basemap_name)

addBasemap 方法可用于在地图内添加或替换底图图层。

addDataFromPath (data_path, {web_service_type}, {custom_parameters})

addDataFromPath 允许通过提供本地路径或 URL 向工程 (.aprx) 中的地图添加图层

addLayer (add_layer_or_layerfile, {add_position})

用于使用基本放置选项向工程 (.aprx) 内的地图添加 LayerLayerFile

addLayerToGroup (target_group_layer, add_layer_or_layerfile, {add_position})

用于使用基本放置选项向工程 (.aprx) 内地图中的现有图层组添加 LayerLayerFile 内容。

addTable (add_table)

用于向工程 (.aprx) 内的地图中添加 Table

addTableToGroup (target_group_layer, add_table)

用于向工程 (.aprx) 内的地图中现有图层组添加 Table

clearSelection ()

清除地图中所有图层和表的选择。

clipLayers (clip_object, {selection})

clipLayers 方法用于设置地图的裁剪选项。

copyBookmark (bookmark, {name})

copyBookmark 方法可将对书签的引用复制到地图中。

createGraphicsLayer ({name})

createGraphicsLayer 方法用于在地图中创建图形图层。

createGroupLayer (name, {group_layer})

允许您在工程 (.aprx) 内的地图中创建图层组。

exportBookmarks (out_bkmx)

exportBookmarks 方法可将与地图相关的所有书签导出到一个书签文件中 (.bkmx)。

exportToMAPX (out_mapx)

用于将 Map 导出至地图文件。

getDefinition (cim_version)

获取地图的 CIM 定义。

getWebLayerSharingDraft (server_type, service_type, service_name, {layers_and_tables})

在可配置并共享到 ArcGIS EnterpriseArcGIS Online 的地图中创建共享草稿。

importBookmarks (bkmx_path)

importBookmarks 方法可将书签文件中的所有书签 (.bkmx) 导入地图中。

insertLayer (reference_layer, insert_layer_or_layerfile, {insert_position})

用于通过指定特定位置向工程 (.aprx) 内的地图添加 LayerLayerFile

listBookmarks ({wildcard})

返回 Map 中的 bookmark 对象的 Python 列表。

listBrokenDataSources ()

返回地图中到原始源数据的连接存在断开情况的 LayerTable 对象的 Python 列表。

listLayers ({wildcard})

返回存在于地图中的 Layer 对象的 Python 列表。

listTables ({wildcard})

返回存在于地图中的 Table 对象的 Python 列表。

moveLayer (reference_layer, move_layer, {insert_position})

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

openView ()

在应用程序中打开并激活一个新的地图视图窗格。

removeBookmark (remove_bookmark)

removeBookmark 方法用于从地图中移除书签。

removeLayer (remove_layer)

用于从工程内的地图中移除图层。

removeTable (remove_table)

用于从工程内的地图中移除表。

setDefinition (definition_object)

设置地图的 CIM 定义。

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

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

updateTransformations (transformations)

updateTransformations 方法使用字典替换地图的变换。

方法

addBasemap (basemap_name)
参数说明数据类型
basemap_name

The name of the basemap as it appears in the basemap gallery.

String

addBasemap 方法的工作方式与地图功能区上底图控件的工作方式相同。 如果底图不存在,则将添加一个新底图。 如果已存在一个或多个底图,它们则会被正在添加的底图替代。

如果要向地图添加多个底图,请将底图保存为图层文件,然后使用 LayerFileaddLayer 方法进行添加。

提示:

要查看可用底图,请使用 ArcGISProject 类上的 listBasemaps 方法。

addDataFromPath (data_path, {web_service_type}, {custom_parameters})
参数说明数据类型
data_path

A string that represents a local path or URL.

(默认值为 None)

String
web_service_type

A string that represents the type of web service connection. When you are working with a service URL that is hosted on a third-party server and the URL is not deterministic, you must specify the service type from the list to add the data. The default value of AUTOMATIC will not work if the custom_parameters dictionary is provided.

  • ARCGIS_SERVER_WEBAn ArcGIS Server web service
  • AUTOMATICAttempt to automatically match the correct service based on the provided URL
  • KMLKML
  • VECTOR_TILEA vector tile service
  • WMSA WMS OGC web service

(默认值为 AUTOMATIC)

String
custom_parameters

A Python dictionary of custom connection parameters. The KML data_service_type does not support custom properties.

(默认值为 None)

Dictionary
返回值
数据类型说明
Layer

一个图层对象。

addDataFromPath 方法提供了一种向地图添加图层的方法,这与从路径添加数据按钮在应用程序中的工作方式相似,即根据图层权重规则和几何类型放置图层。 有关更精确的图层放置控制,请参阅 moveLayer 方法。

添加 ArcGIS Server 服务、矢量切片服务或 WMS 服务时,可以添加自定义请求参数。 这些键值对可追加到受支持服务图层获取的所有资源和操作的 URL。 这些通常是访问键,以允许访问受限制的数据。 在某些情况下,您必须指定访问键值对以添加数据。 如果您要使用受限的访问服务,请联系服务的管理员获取访问密钥。

有关详细信息,请参阅将图层添加至地图或场景

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 根据图层权重规则和几何类型放置图层。其他放置选择为放置在图层堆叠的 TOPBOTTOM。有关更精确的图层放置控制,请参阅 insertLayer 方法。

已添加的图层可以引用同一工程或单独工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。有关图层文件的详细信息,请参阅 LayerFile

添加图层后,图层在内容列表 (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 根据图层权重规则和几何类型放置图层。其他放置选择为放置在图层堆叠的 TOPBOTTOM。有关更精确的图层放置控制,请参阅 insertLayer 方法。

已添加的图层可以引用同一工程或单独工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。有关图层文件的详细信息,请参阅 LayerFile

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

addTable (add_table)
参数说明数据类型
add_table

Table 对象(表示要添加的表)的引用。

Table
返回值
数据类型说明
Table

引用 Table 对象。

addTable 方法用于将表添加到地图中。想要使用 Map 对象上的 listTables 方法添加的表可以是现有地图中的表,也可以是磁盘或通过 Table 函数引用的数据集中的表。

addTableToGroup (target_group_layer, add_table)
参数说明数据类型
target_group_layer

A reference to an existing group layer.

Layer
add_table

A reference to a Table object.

Table

addTableToGroup 方法是向地图中的现有图层组添加表的唯一方法。 已添加的表可以引用同一工程中的现有表、单独工程中的表,或磁盘上图层文件 (.lyrx) 中的表。

如果您在同一地图中引用表并将表添加到组中,将创建一个重复的表,您可能需要删除原始表引用。

clearSelection ()

清除地图中所有图层和表的选择。

clipLayers (clip_object, {selection})
参数说明数据类型
clip_object

This object can be a polygon feature layer, an extent object, a graphics layer that includes polygons, or a custom polygon object. The clipping options can be cleared if set to None.

Object
selection

Specifies whether a selection will be used for clipping. If set to True and the clip_object value includes a selection, only selected polygon features will be used for clipping. If set to True and the clip_object does not have a selection, clipLayers will be set to None.

注:

A selection only applies to polygon feature layers and graphics layers that include polygon elements. Also, a selection only applies to graphics layers when a script is run from within the application because a graphic layer element selection is not saved with a project.

(默认值为 ALL)

String

clipLayers 方法支持裁剪地图中的图层clip_object 参数支持多种输入,但它们都必须是封闭区域几何。 MapSeries 类提供 clipToIndexFeature 属性,该属性可指定地图裁剪是否使用地图系列索引要素。

注:
如果地图系列的 clipToIndexFeature 设置为 True,则您无法将地图的裁剪图层设置为 None,除非将 clipToIndexFeature 设置为 False

此示例代码设置了一个地图系列中一张地图的裁剪图层和排除图层。 它还设置了 clipToIndexFeature,以启用对索引要素的裁剪。

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Yosemite National Park MS')[0]
indexLyr = m.listLayers('IndexLayer')[0]
excludeLyr = m.listLayers('Topo*')[0]
m.clipLayers(indexLyr)
m.excludedLayersFromClipping = [excludeLyr]

lyt = p.listLayouts('*MS')[0]
ms = lyt.mapSeries
ms.clipToIndexFeature = True
copyBookmark (bookmark, {name})
参数说明数据类型
bookmark

A reference to an existing bookmark in a map either in the same map or a different map.

Bookmark
name

A string that represents the name of the new bookmark. If a name is not provided, the default value will follow the sequencing nomenclature, for example, Bookmark, Bookmark [1], Bookmark [2].

String
返回值
数据类型说明
Bookmark

书签对象。

此方法会返回对新 bookmark 类的引用。 正在复制的书签可以来自不同的地图或同一地图。 还可从不同工程的地图中复制书签。 请参阅 Bookmark 类帮助主题中的代码示例。

createGraphicsLayer ({name})
参数说明数据类型
name

The name of the new graphics layer. If no name is provided, the default name value will follow the automatic sequencing nomenclature, for example, Graphics Layer, Graphics Layer 2, Graphics Layer 3, and so on.

String
返回值
数据类型说明
Layer

对新图形图层的引用。

将在地图内容列表的第一个位置处创建图形图层。 如果您要创建多个图层,请为地图中的每个图层提供一个唯一名称,以便可以通过图层名称轻松地引用图层,例如,可以使用 listLayers 方法中的 wildcard 参数进行引用。

createGroupLayer (name, {group_layer})
参数说明数据类型
name

A string that represents the name of the new group layer.

String
group_layer

A reference to an existing group layer into which to insert the new group layer. Use this parameter to create nested group layers.

Layer
返回值
数据类型说明
Layer

对新图层组的引用。

createGroupLayer 方法允许您在地图中创建图层组。 图层组将创建在地图内容列表的第一个位置。 图层组也可以在现有图层组中创建以创建嵌套图层组。 图层组创建完成后,可以使用 moveLayer 方法将图层组移动到地图内容列表中的其他位置。

exportBookmarks (out_bkmx)
参数说明数据类型
out_bkmx

A string that represents the path and file name for the output bookmark file (.bkmx).

String

此方法与 importBookmarks 配合使用,可以将一个地图中的所有书签传输到同一工程或不同工程中的另一个地图中。 请参阅 Bookmark 类帮助主题中的代码示例。

exportToMAPX (out_mapx)
参数说明数据类型
out_mapx

用于将 Map 保存至地图文件 (.mapx) 的字符串。

String

如果您希望将地图保存至地图文件,以供日后使用 ArcGISProject importDocument 方法将其导入到工程中,则此方法将非常有用。

getDefinition (cim_version)
参数说明数据类型
cim_version

A string that represents the major version of the CIM.

String

ArcGIS Pro 2.4 中引入了对其他对象属性的 CIM 级别访问权限。 要返回对象的 CIM 定义,必须指定 cim_version。 Esri 遵循语义版本规范。 这意味着在主要版本(例如 3.0)中允许突破性 API 更改。 如果可能在新版本中引入突破性更改,Python 脚本作者可通过该值控制脚本运行期间使用的 CIM 版本。 如果您正在为 ArcGIS Pro 2.x 创作脚本,可将 cim_version 指定为 'V2'。 如果您正在为 ArcGIS Pro 3.x 创作脚本,可将 cim_version 指定为 'V3'。 使用 cim_version 'V2' 创作的脚本可继续在 ArcGIS Pro 3.x 中使用。

有关使用 CIM 和示例的详细信息,请参阅 Python CIM 访问

getWebLayerSharingDraft (server_type, service_type, service_name, {layers_and_tables})
参数说明数据类型
server_type

A string representing the server type. The following server types are supported:

  • HOSTING_SERVERSupports publishing either a web feature layer or a web tile layer to ArcGIS Enterprise or ArcGIS Online. Use this option when specifying FEATURE or TILE in the service_type parameter.
  • FEDERATED_SERVERSupports publishing a map image layer to an ArcGIS Enterprise portal federated server. Use this option when specifying MAP_IMAGE in the service_type parameter.
提示:

The getWebLayerSharingDraft function does not support publishing map services to ArcGIS Server. Instead, use the arcpy.sharing.CreateSharingDraft function.

String
service_type

A string representing the service type. The following service types are supported:

String
service_name

A string that represents the name of the service. This is the name people will see and use to identify the service. The name can contain alphanumeric characters, spaces, and underscores. No special characters are allowed. The name cannot be more than 120 characters in length.

String
layers_and_tables

A list of layers and tables from the map. If left blank, the entire map will be published. This parameter allows you to choose a subset of layers and tables from the map to publish. The layers and tables must be from the same map that is being published.

注:

If you specify a layer or table that participates in a relationship class when publishing a web feature layer or a map image layer, all layers or tables involved in the relationship class will be published.

List
返回值
数据类型说明
Object

返回 FeatureSharingDraftTileSharingDraftMapImageSharingDraft 类对象。

getWebLayerSharingDraft 函数可基于 ArcGIS Pro 工程中的地图创建共享草稿。 共享草稿是适用于 web 图层的可配置属性集。 共享草稿配置完成后,可以使用 FeatureSharingDraftTileSharingDraftMapImageSharingDraft 类中的 exportToSDDraft 函数将其保存到服务定义草稿 (.sddraft) 文件。 随后即可使用过渡服务上传服务定义工具将其过渡和共享给 ArcGIS EnterpriseArcGIS Online。 有关详细信息,请参阅共享模块简介

importBookmarks (bkmx_path)
参数说明数据类型
bkmx_path

A string that represents the path and file name to a bookmark file (.bkmx).

String

此方法与 exportBookmarks 配合使用,可以将一个地图中的所有书签传输到同一工程或不同工程中的另一个地图中。 请参阅 Bookmark 类帮助主题中的代码示例。

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_layerbeforeafter

如果 reference_layer 引用的是地图根级别的图层,则所插入的图层会添加到根级别。如果 reference_layer 引用的是图层组中的图层,则所插入的图层将添加到该图层组中。因为 reference_layer 为必需参数,所以无法使用 insert_layer 将图层添加到空地图或空图层组中。使用 addLayeraddLayerToGroup 方法将图层或图层集合分别添加到空地图或空图层组中。

已插入的图层可以引用同一工程或单独工程中的现有图层,或引用磁盘上的图层文件(.lyr.lyrx)。图层可以引用单个图层、含有多个子图层的图层组,或根级别的图层或图层组的集合(如果引用 .lyrx 文件)。有关图层文件的详细信息,请参阅 LayerFile

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

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

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

(默认值为 None)

String
返回值
数据类型说明
List

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

返回 Map 中的 bookmark 对象的 Python 列表。

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

LayerTable 对象的 Python 列表。

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

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

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

(默认值为 None)

String
返回值
数据类型说明
List

返回地图中的 Layer 对象的 Python 列表。

返回存在于地图中的 Layer 对象的 Python 列表。ListLayers 始终返回列表对象,即使仅返回一个表。

地图中可以存在名称相同的图层。在这种情况下,可能需要使用其他属性来隔离特定图层。例如,图层的 datasourcedefinitionQuery 属性可用来执行此操作。理想状态为地图中的所有图层名称均唯一。

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

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

(默认值为 None)

String
返回值
数据类型说明
List

地图中的 Table 对象的 Python 列表。

返回存在于地图中的 Table 对象的 Python 列表。ListTables 始终返回列表对象,即使仅返回一个表。

地图中可以存在名称相同的表。在这种情况下,可能需要使用其他属性来隔离特定图层。例如,表的 datasourcedefinitionQuery 属性可用来执行此操作。理想状态为地图中的所有表名称均唯一。

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 必须位于同一地图内。不能将图层从一个地图移动到另一个地图中,即使在同一工程中也不可以。使用 addLayeraddLayerToGroupinsertLayer 代替。

openView ()

如果地图视图尚未打开,或者应用程序中的另一个视图处于活动状态,则此方法将非常有用。 该方法将创建一个缩放至其默认范围的地图视图并将其激活。 在打开新视图之前,要关闭其他现有视图,请使用 ArcGISProject closeViews 方法。

可以通过以下两种技术来控制地图视图的所需范围: 首先,在打开视图之前,可以为地图设置 defaultCamera。 其次,在打开视图之后,可以更改 MapView 照相机范围。

注:

此方法旨在使用脚本工具、Notebook 或 Python 窗口在应用程序中运行。 如果在应用程序之外运行该方法,则其将无效。

removeBookmark (remove_bookmark)
参数说明数据类型
remove_bookmark

A reference to a Bookmark object representing the bookmark to be removed.

Bookmark

removeBookmark 方法用于从地图中移除单个书签。 要从地图中移除所有书签,需要遍历所有书签并一次移除一个书签。

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

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

Layer

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

removeTable (remove_table)
参数说明数据类型
remove_table

A reference to a Table object representing the layer to be removed.

Table

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

setDefinition (definition_object)
参数说明数据类型
definition_object

使用 getDefinition 最初检索的已修改 CIM 定义对象。

Object

有关使用 CIM 和示例的详细信息,请参阅 Python CIM 访问

updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
参数说明数据类型
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

有关更详细的说明、参数信息、情景和代码示例,请参阅更新和修复数据源

updateTransformations (transformations)
参数说明数据类型
transformations

The dictionary keys are defined below.

  • 2DHorizontal transformations, if any exist
  • 3DVertical transformations, if any exist
Dictionary

要更新地图的变换,必须设置整个变换集。 不能一次添加、移除或更新单一变换。 可以从头开始构建新字典,或可以修改 transformations 属性返回的字典,然后使用 updateTransformations 方法将整个字典推送回地图。

代码示例

Map 示例 1

下面的脚本引用了图层文件并将图层插入地图中已存在的图层上方:

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
insertLyr = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\LayerFiles\Ranger Stations.lyrx")
m = aprx.listMaps("Yosemite National Park")[0]
refLyr = m.listLayers("Points of Interest")[0]
m.insertLayer(refLyr, insertLyr, "BEFORE")
aprx.saveACopy(r"C:\Projects\YosemiteNP\Yosemite_updated.aprx")
Map 示例 2

以下脚本将设置当前位于工程中的所有地图和场景的 defaultCamera 属性。 将从具有所需查看器设置的现有地图框中复制照相机属性。 所有地图将从 2D 地图框中进行复制,所有场景查看器设置将从 3D 地图框中进行复制。

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
lyt = aprx.listLayouts("Main Attractions*")[0]
mpFrm2D = lyt.listElements("mapframe_element", "Yose*")[0]
mpFrm3D = lyt.listElements("mapframe_element", "Inset1")[0]
for m in aprx.listMaps():
    if m.mapType == "MAP":
        m.defaultCamera = mpFrm2D.camera
    elif m.mapType == "SCENE":
        m.defaultCamera = mpFrm3D.camera
aprx.save()
del aprx
Map 示例 3

下面的脚本使用了关键字 current,因此可从 Python 窗口运行此脚本。 该脚本用于新建地图并向其添加新图层。 将更新地图的默认照相机属性,该属性用于控制新打开的视图的范围。 然后将地图视图导出为 PDF。 新建的地图随即从工程中移除。

aprx = arcpy.mp.ArcGISProject("CURRENT")

#Create a copy of an existing map
newMap = aprx.createMap("Ranger Stations", "Map")

#Add ranger stations layer file
lyrx1 = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\LayerFiles\Park Boundary.lyrx")
newMap.addLayer(lyrx1)
lyrx2 = arcpy.mp.LayerFile(r"C:\Projects\YosemiteNP\LayerFiles\Ranger Stations.lyrx")
newMap.addLayer(lyrx2)

#Close any current map or layout views
aprx.closeViews("MAPS_AND_LAYOUTS")

#Set the default map camera to the extent of the park boundary before opening the new view
#default camera only affects newly opened views
lyr = newMap.listLayers("*Park Boundary")[-1]
newMap.defaultCamera.setExtent(arcpy.Describe(lyr).extent)
newMap.openView()

#export the newly opened active view to PDF, then delete the new map
mv = aprx.activeView
mv.exportToPDF(r"C:\Temp\RangerStations.pdf", width=700, height=500, resolution=96)
aprx.deleteItem(newMap)