Краткая информация
Объект 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 по умолчанию для карты. | Camera |
defaultView (только чтение) | Используется в сочетании с ConvertWebMapToArcGISProject в веб-картах, печатающихся с помощью веб-инструмента, для возврата вида карты для печати или экспорта. | MapView |
excludeLayersFromClipping (чтение и запись) | Список объектов Layer, которые будут исключены из вырезания карты, если для параметра clipLayers установлено значение True. | List |
mapType (только чтение) | Возвращает строку, которая сообщает информацию о типе объекта Map. Возможные значения:
| String |
mapUnits (только чтение) | Возвращает строковое значение, представляющее единицы карты для Map. | String |
metadata (чтение и запись) | Получите или настройте информацию о классе Metadata для карты. | 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.
(Значение по умолчанию — 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) | 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) | String |
Метод addLayerToGroup является единственным способом добавить слой или набор слоев в существующий, пустой составной слой в карте. По умолчанию add_position добавляет слои с использованием той же логики автоматического упорядочения, которая размещает слои в карте аналогично работе кнопки Добавить данные (Add Data) в приложении; она размещает каждый слой с учетом правил определения веса слоя и типа геометрии. Другими вариантами размещения являются либо TOP, либо BOTTOM стека слоев. Для более точного контроля размещения слоя, обратитесь к методу insertLayer.
Добавляемый слой может ссылаться на уже существующий слой в том же или в отдельном проекте, или ссылаться на файл слоя (.lyr or .lyrx) на диске. Ссылка на слой может быть отдельным слоем, составным слоем со множеством подслоев или набором слоев корневого уровня и составных слоев при ссылке на файл .lyrx. Дополнительные сведения по файлам слоя см. в разделе LayerFile.
Способ отображения слоя в таблице содержания (TOC) после добавления зависит от способа отображения слоя источника. Например, некоторые слои полностью свернуты и не отображают свои символы в таблице содержания (TOC). Эта настройка сохраняется в слое. Если слой свернут, сохранен в файле слоя, а потом добавлен в карту, то слой будет свернут в новой карте при добавлении через addLayerToGroup.
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. |
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:
Подсказка: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.
(Значение по умолчанию — 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.
(Значение по умолчанию — 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.
| Dictionary |
Для обновления преобразований карты необходимо задать весь набор преобразований. Вы не можете добавлять, удалять или обновлять преобразования по одному за раз. Вы можете создать новый словарь с нуля или изменить словарь, возвращаемый свойством transformations, и отправить весь словарь обратно на карту с помощью метода updateTransformations.
Пример кода
Следующий скрипт ссылается на файл слоя и вставляет слой в карту над слоем, который уже существует на карте:
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")
Следующий скрипт установит свойство 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
Следующий скрипт использует ключевое слово 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)