Map

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

Объект Map является основным объектом для привязывания и управления слоями и таблицами в проекте ArcGIS Pro.

Обсуждение

Объект Map в ArcGIS Pro представляет набор табличных и географических слоев с условными обозначениями, а также хранит такую информацию, как система координат, представление данных по умолчанию и различные другие метаданные. Единственным способом отобразить содержание карты является визуализация либо в MapView, подобной вкладке в приложении с собственной таблицей содержания, либо во фрейме карты в Компоновке. Одна и та же карта может быть отображена во множестве видов карты или фреймов карты. Если слой добавлен на карту, то все виды карты и фреймы карты, которые ссылаются на карту, будут отображать добавленный слой. Если вы хотите, чтобы другой набор слоев или таблиц был отображен в разных видах, вам нужно создать и использовать различные карты.

Доступ к картам осуществляется с помощью функции listMaps из объекта ArcGISProject, и функция возвращает список Python объектов Map. Важно присвоить каждой карте уникальное имя, чтобы можно было легко сослаться на конкретную карту с помощью параметра wildcard, использующего свойство name. К карте также можно получить доступ из объекта MapFrame, используя свойство map.

Метод createMap класса ArcGISProject позволяет вам создать карту в проекте. Если вы запустите скрипт из приложения, он будет учитывать настройки базовой карты. Если вы запустите скрипт вне приложения, он автоматически добавит топографическую базовую карту, и вам нужно будет удалить слой базовой карты, если он не нужен.

Метод openView также является способом открыть вид карты. Вы можете сделать несколько вещей, прежде чем вызвать openView. Во-первых, установка defaultCamera перед открытием нового вида будет контролировать начальный экстент. Во-вторых, вы можете закрыть другие виды с помощью метода closeViews класса ArcGISProject, прежде чем открывать новый вид. Третий пример ниже иллюстрирует этот рабочий процесс.

Для объекта Map доступно несколько методов, позволяющих управлять набором табличных и географических слоев с условными обозначениями. Слои и таблицы можно добавлять (addLayer, addLayerToGroup, addTable или insertLayer), удалять (removeLayer или removeTable) и переставлять (moveLayer) в списке существующих слоев и таблиц. Методы listLayers и listTables позволяют ссылаться на Слои и Таблицы на карте.

У каждой карты есть свойство mapType. Оно либо имеет значение MAP, которое представляет собой 2D-карту, либо значение SCENE, которое представляет собой 3D-карту. Одним из примеров необходимости знать свойство mapType является то, что вы хотите установить свойство defaultCamera. Вы не можете применить объект 3D Камера к 2D-карте или наоборот. Таким образом, вы должны проверить значение mapType заранее.

Класс карты также поддерживает методы getDefinition и setDefinition. Более подробную справку см. в разделе Доступ к Python CIM.

Свойства

СвойствоОписаниеТип данных
defaultCamera
(чтение и запись)

Предоставляет возможность получать или устанавливать настройки Camera по умолчанию для карты.

Примечание:

Изменение defaultCamera не повлияет на существующий вид. Это свойство применяется, только когда открывается новый MapView, либо когда новый MapFrame вставляется в компоновку.

Camera
defaultView
(только чтение)

Используется в сочетании с ConvertWebMapToArcGISProject в веб-картах, печатающихся с помощью веб-инструмента, для возврата вида карты для печати или экспорта.

MapView
excludeLayersFromClipping
(чтение и запись)

Список объектов Layer, которые будут исключены из вырезания карты, если для параметра clipLayers установлено значение True.

List
mapType
(только чтение)

Возвращает строку, которая сообщает информацию о типе объекта Map. Возможные значения:

  • BASEMAPВозвращено для базовых карт
  • MAPВозвращено для карт или стереокарт
  • 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
(только чтение)

Universal Resource Indicator карты. Это уникальный идентификатор карты в проекте, который иногда требуется при использовании доступа Python CIM access. После добавления карты и установления URI значение со временем не меняется. Например, если вы измените имя карты, URI не изменится.

String

Обзор метода

МетодОписание
addBasemap (basemap_name)

Метод addBasemap предоставляет возможность добавлять или заменять слой базовой карты внутри самой карты.

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

addDataFromPath позволяет добавить Layer в карту проекта (.aprx) посредством указания локального пути или URL-адреса.

addLayer (add_layer_or_layerfile, {add_position})

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

addLayerToGroup (target_group_layer, add_layer_or_layerfile, {add_position})

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

addTable (add_table)

Обеспечивает возможность добавления Table на карту внутри проекта (.aprx).

addTableToGroup (target_group_layer, add_table)

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

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 Enterprise или ArcGIS Online.

importBookmarks (bkmx_path)

Метод importBookmarks, предназначенный для импорта всех закладок из файла закладок (.bkmx) на карту.

insertLayer (reference_layer, insert_layer_or_layerfile, {insert_position})

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

listBookmarks ({wildcard})

Возвращает список Python объектов bookmark (закладка) в Map.

listBrokenDataSources ()

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

listLayers ({wildcard})

Возвращает список Python объектов Layer (Слой), которые существуют в карте.

listTables ({wildcard})

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

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 работает аналогично системе управления Базовая карта на ленте Карта. Если базовой карты не существует, будет добавлена новая. Если существует одна или несколько базовых карт, их место займет вновь добавленная.

Чтобы добавить в карту более одной базовой карты, сохраните базовую карту в файл слоя и добавьте его, используя методы LayerFile и addLayer.

Подсказка:

Чтобы увидеть, какие базовые карты доступны, используйте метод listBasemaps в классе ArcGISProject.

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

Объект Layer.

Метод addDataFromPath позволяет добавить слой в карту путем, аналогичным тому, как в данном приложении работает кнопка Добавить данные из пути; а именно, она размещает слои с учетом правил определения веса слоя и типа геометрии. Для более точного контроля размещения слоев обратитесь к методу moveLayer.

Когда вы добавляете сервисы ArcGIS Server, сервисы векторных листов или сервисы WMS, вы можете добавлять параметры пользовательского запроса. Это пары ключ-значение, которые можно добавить к URL-адресу для всех ресурсов и операций, выбранных на слое сервиса Часто это ключи доступа, позволяющие получить доступ к данным с ограниченным доступом. В некоторых случаях необходимо указать пару ключ-значение доступа для добавления данных. Обратитесь к администратору сервиса за ключами доступа, если вы работаете с сервисами с ограниченным доступом.

Для подробной информации см. раздел Добавление слоев на карту или сцену.

addLayer (add_layer_or_layerfile, {add_position})
ПараметрОписаниеТип данных
add_layer_or_layerfile

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

Layer
add_position

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

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

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

String
Возвращаемое значение
Тип данныхОписание
List

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

Метод addLayer предоставляет способ добавить слой или набор слоев в карту. По умолчанию add_position добавляет слои с использованием той же логики автоматического упорядочения, которая размещает слои в карте аналогично работе кнопки Добавить данные (Add Data) в приложении; она размещает каждый слой с учетом правил определения веса слоя и типа геометрии. Другими вариантами размещения являются либо TOP, либо BOTTOM стека слоев. Для более точного контроля размещения слоя, обратитесь к методу insertLayer.

Добавляемый слой может ссылаться на уже существующий слой в том же или в отдельном проекте, или ссылаться на файл слоя (.lyr or .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

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

Layer
add_position

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

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

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

String

Метод addLayerToGroup является единственным способом добавить слой или набор слоев в существующий, пустой составной слой в карте. По умолчанию add_position добавляет слои с использованием той же логики автоматического упорядочения, которая размещает слои в карте аналогично работе кнопки Добавить данные (Add Data) в приложении; она размещает каждый слой с учетом правил определения веса слоя и типа геометрии. Другими вариантами размещения являются либо TOP, либо BOTTOM стека слоев. Для более точного контроля размещения слоя, обратитесь к методу insertLayer.

Добавляемый слой может ссылаться на уже существующий слой в том же или в отдельном проекте, или ссылаться на файл слоя (.lyr or .lyrx) на диске. Ссылка на слой может быть отдельным слоем, составным слоем со множеством подслоев или набором слоев корневого уровня и составных слоев при ссылке на файл .lyrx. Дополнительные сведения по файлам слоя см. в разделе LayerFile.

Способ отображения слоя в таблице содержания (TOC) после добавления зависит от способа отображения слоя источника. Например, некоторые слои полностью свернуты и не отображают свои символы в таблице содержания (TOC). Эта настройка сохраняется в слое. Если слой свернут, сохранен в файле слоя, а потом добавлен в карту, то слой будет свернут в новой карте при добавлении через addLayerToGroup.

addTable (add_table)
ПараметрОписаниеТип данных
add_table

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

Table
Возвращаемое значение
Тип данныхОписание
Table

Ссылка на объект Table.

Метод addTable предоставляет способ добавить таблицы на карту. Таблица, которую вы хотите добавить, может быть либо таблицей на существующей карте, и тогда используется метод listTables для объекта Map, или это может быть таблица на диске или в базе данных, на которую ссылается функция 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 поддерживает множество входных данных, но все они должны быть замкнутыми геометриями. Свойство clipToIndexFeature доступно в классе MapSeries, чтобы указать, будут ли при вырезании карты использоваться объекты индекса серии карт.

Примечание:
Если для серии карт значение 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. Копируемая закладка может быть взята с другой или с той же карты. Вы также можете скопировать закладку с карты из другого проекта. См. пример кода в разделе справки, посвященном классу 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

Ссылка на новый слой графики.

Слой графики будет идти первым в таблице содержания карты. При создании нескольких слоев укажите уникальное имя для каждого слоя на карте, чтобы на них можно было легко ссылаться по их именам, например, используя параметр wildcard в методе listLayers.

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
Возвращаемое значение
Тип данныхОписание
Object

Возвращает определение CIM для объекта Map.

Уровень доступа CIM для дополнительных свойств объекта был введен в версии ArcGIS Pro 2.4. Если вы хотите вернуть определение CIM объекта, необходимо указать cim_version. Esri использует спецификацию семантического версионирования. Это означает, что критические изменения API разрешены в основных версиях — например, 3.0 Это даст авторам скриптов Python возможность управления версией CIM, которая будет использоваться во время запуска скрипта, если существует вероятность внесения критических изменений в новой версии. При создании скриптов для ArcGIS Pro 2.x укажите значение cim_version как 'V2'. При создании скриптов для ArcGIS Pro 3.x укажите значение cim_version как 'V3'. Скрипты, созданные с использованием cim_version 'V2', будут продолжать работать в ArcGIS Pro 3.x.

Более подробно о работе с CIM и примеры см. Доступ к CIM в Python.

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, a web tile layer, or a web scene layer to ArcGIS Enterprise or ArcGIS Online. Use this option when specifying FEATURE, TILE, or SCENE_LAYER in the service_type parameter.
  • FEDERATED_SERVERSupports publishing a map image layer or web scene layer to an ArcGIS Enterprise portal federated server. Use this option when specifying MAP_IMAGE or SCENE_LAYER 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

Возвращает объект класса FeatureSharingDraft, TileSharingDraft, MapImageSharingDraft или SceneLayerSharingDraft.

Функция getWebLayerSharingDraft создает из карты план совместного использования из карты в проекте ArcGIS Pro. План совместного использования представляет собой настраиваемый набор свойств для веб-слоя. После настройки плана совместного использования его можно сохранить в файле черновика определений сервиса (.sddraft), используя функцию exportToSDDraft, из классов FeatureSharingDraft, TileSharingDraft или MapImageSharingDraft. Затем он может быть применен и опубликован либо в ArcGIS Enterprise, либо в ArcGIS Online, используя инструменты Промежуточный сервис и Выгрузить определение сервиса. Если вы создали общий черновик с помощью класса SceneLayerSharingDraft, используйте функцию Publish для общего доступа к слою веб-сцены. Дополнительные сведения см. в разделе Введение в arcpy.sharing.

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

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

Layer
insert_position

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

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

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

String

Метод insertLayer является более точным способом позиционирования слоя в карте или составном слое, поскольку для указания точного положения используется reference_layer. Слой будет добавлен либо before, либо after reference_layer.

Если reference_layer ссылается на слой корневого уровня карты, то вставляемый слой будет добавлен на корневом уровне. Если reference_layer ссылается на слой внутри составного слоя, то вставляемый слой будет добавлен в группу. Поскольку reference_layer является обязательным параметром, то невозможно использовать insert_layer для добавления слоя в пустую карту или в пустой составной слой. Используйте методы addLayer или addLayerToGroup для добавления слоя или набор слоев в пустую карту или составной слой.

Вставляемый слой может ссылаться на уже существующий слой в том же или в отдельном проекте, или ссылаться на файл слоя (.lyr или .lyrx) на диске. Ссылка на слой может быть отдельным слоем, составным слоем со множеством подслоев или набором слоев корневого уровня и составных слоев при ссылке на файл .lyrx. Дополнительные сведения по файлам слоя см. в разделе LayerFile.

Способ отображения слоя в таблице содержания (TOC) после добавления зависит от способа отображения слоя источника. Например, некоторые слои полностью свернуты и не отображают свои символы в таблице содержания (TOC). Эта настройка сохраняется в слое. Если слой свернут, сохранен в файле слоя, а потом добавлен в карту, то слой будет свернут в новой карте при добавлении через insertLayer.

listBookmarks ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени закладки и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

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

String
Возвращаемое значение
Тип данныхОписание
List

Метод listBookmarks всегда возвращает объект списка Python, даже если возвращается только один поврежденный слой или таблица.

Возвращает список Python объектов bookmark (закладка) в Map.

listBrokenDataSources ()
Возвращаемое значение
Тип данныхОписание
List

Список объектов Python Слой (Layer) или Таблица (Table).

Метод listBrokenDataSources всегда возвращает объект списка Python, даже если возвращается только один поврежденный слой или таблица.

listLayers ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени слоя и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

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

String
Возвращаемое значение
Тип данныхОписание
List

Возвращает список Python объектов Layer (Слой) в карте.

Возвращает список Python объектов Layer (Слой), которые существуют в карте. ListLayers всегда возвращает объект списка Python, даже если возвращается только одна таблица.

Существует возможность, что в карте могут быть слои с одинаковым именем. В этом случае можно использовать другие свойства для изоляции определенного слоя. Такие свойства слоя, как datasource или definitionQuery, могут использоваться для выполнения этой операции. Идеальным является вариант, при котором все слои карты имеют уникальные имена.

listTables ({wildcard})
ПараметрОписаниеТип данных
wildcard

Групповой символ базируется на имени слоя и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов.

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

String
Возвращаемое значение
Тип данныхОписание
List

Список Python объектов Table (Таблица) в карте.

Возвращает список Python объектов Table (Таблица), которые существуют в карте. ListTables всегда возвращает объект списка Python, даже если возвращается только одна таблица.

Существует возможность, что в карте могут быть таблицы с одинаковым именем. В этом случае можно использовать другие свойства для изоляции определенного слоя. Такие свойства таблицы, как datasource или definitionQuery, могут использоваться для выполнения этой операции. Идеальным является вариант, при котором все таблицы в карте имеют уникальные имена.

moveLayer (reference_layer, move_layer, {insert_position})
ПараметрОписаниеТип данных
reference_layer

A Layer object representing an existing layer that determines where the move_layer is positioned based on the insert_position value.

Layer
move_layer

A reference to a Layer object representing the layer to be moved.

Layer
insert_position

A constant that determines the placement of the moved layer relative to the reference_layer.

  • AFTERMoves the layer after or below the reference layer.
  • BEFOREMoves the layer before or above the reference layer.

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

String

Объекты слоя move_layer и reference_layer должны находиться в той же карте. Слой нельзя переместить с одной карты на другую даже в пределах одного проекта. Используйте addLayer, addLayerToGroup или insertLayer для перемещения слоев между картами. Метод moveLayer не может перемещать слои в пустой составной слой. Вам необходимо будет использовать addLayerToGroup, а затем использовать removeLayer, чтобы удалить слой из исходного положения после его добавления в группу.

openView ()

Это полезно, если вид карты еще не открыт или в приложении активен другой вид. Этот метод создает вид карты, масштабированный к экстенту по умолчанию, и активирует его. Чтобы закрыть другие существующие виды перед открытием нового вида, используйте метод ArcGISProject closeViews.

Существует два способа управления желаемым экстентом вашего вида карты. Сначала перед открытием вида вы можете задать defaultCamera для вашей карты. Затем вы можете изменить экстент камеры MapView после того, как она откроется.

Примечание:

Этот метод предназначен для запуска в приложении с помощью инструмента-скрипта, блокнота или окна 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

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

Table

RemoveTable удаляет одну таблицу с определенной карты. Если указанным критериям соответствует несколько таблиц, будет удалена только первая таблица, если только скрипт не будет повторно обрабатывать каждую таблицу в возвращенном списке.

setDefinition (definition_object)
ПараметрОписаниеТип данных
definition_object

Объект измененного определения CIM, изначально полученный с помощью getDefinition.

Object

Более подробно о работе с CIM и примеры см. Доступ к CIM в Python.

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.

Пример кода

Пример карты 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")
Пример карты 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
Пример карты 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)