Skip to main content

addBasemap

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

Объект 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.

Синтаксис

addBasemap()

Свойства

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

colorModel

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

Возвращает цветовую модель, назначенную объекту Map. Допустимыми значениями являются CMYK либо RGB.

String

defaultCamera

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

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

Примечание:

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

Camera

defaultView

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

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

MapView

excludedLayersFromClipping

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

Список объектов 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 предоставляет возможность добавлять или заменять слой базовой карты внутри самой карты.

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

basemap_name

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

String

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

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

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

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_WEB—An ArcGIS Server web service

  • AUTOMATIC—Attempt to automatically match the correct service based on the provided URL

  • KML—KML

  • VECTOR_TILE—A vector tile service

  • WMS—A 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.

addLayer(add_layer_or_layerfile, {add_position})

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

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

add_layer_or_layerfile

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

Layer

add_position

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

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

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

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

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

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

String

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

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

List

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

addLayerToGroup(target_group_layer, add_layer_or_layerfile, {add_position})

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

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

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

addTable(add_table)

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

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

add_table

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

Table

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

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

Table

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

addTableToGroup(target_group_layer, add_table)

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

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

target_group_layer

A reference to an existing group layer.

Layer

add_table

A reference to a Table object.

Table

clearSelection()

Очищает выборку для всех слоев и таблиц карты.

clipLayers(clip_object, {selection})

Метод clipLayers задает опции вырезания для карты.

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

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 SELECTED and the clip_object value includes a selection, only selected features will be used for clipping. If set to SELECTED 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

В этом примере кода задаются вырезающие слои и исключенные слои для карты в серии карт. Им также задается 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})

Метод copyBookmark копирует ссылку на закладку на карту.

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

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})

Метод createGraphicsLayer создает слой графики на карте.

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

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

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

createGroupLayer(name, {group_layer})

Позволяет вам создать составной слой карты в проекте (.aprx).

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

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

Ссылка на новый составной слой.

exportBookmarks(out_bkmx)

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

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

out_bkmx

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

String

exportToMAPX(out_mapx)

Экспортирует Map в файл карты.

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

out_mapx

Строка используется для сохранения Map в в файл карты (.mapx).

String

getDefinition(cim_version)

Получает определение CIM для карты.

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

cim_version

A string that represents the major version of the CIM.

String

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

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

Object

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

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

Создает из карты план совместного использования, который можно настроить и опубликовать в ArcGIS Enterprise или ArcGIS Online.

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

server_type

Строка, представляющая тип сервера. Поддерживаются следующие типы серверов:

Подсказка:

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

String

service_type

Строка, представляющая тип сервиса. Поддерживаются следующие типы сервисов:

String

service_name

Строка, представляющая имя сервиса. Это имя будут видеть пользователи и идентифицировать по нему сервис. Имя может содержать буквы, цифры, пробелы и знак подчеркивания. Использование специальных символов не допускается. Длина имени не должна превышать 120 символов.

String

layers_and_tables

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

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

Примечание:

Если вы укажете слой или таблицу, которые входят в класс отношений, при публикации векторного веб-слоя или слоя изображений карты, будут опубликованы все слои или таблицы, входящие в класс отношений.

List

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

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

Object

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

importBookmarks(bkmx_path)

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

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

bkmx_path

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

String

insertLayer(reference_layer, insert_layer_or_layerfile, {insert_position})

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

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

reference_layer

A Layer object representing an existing layer that determines the location where the new layer will be inserted.

Layer

insert_layer_or_layerfile

A reference to a Layer or LayerFile object representing the layer or layers to be added.

Layer

insert_position

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

A constant that determines the placement of the added layer or layers relative to the reference_layer.

  • AFTER—Inserts the new layer after or below the reference layer.

  • BEFORE—Inserts the new layer before or above the reference layer.

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

String

listBookmarks({wildcard})

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

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

wildcard

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

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

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

String

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

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

List

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

listBrokenDataSources()

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

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

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

List

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

listLayers({wildcard})

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

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

wildcard

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

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

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

String

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

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

List

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

listTables({wildcard})

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

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

wildcard

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

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

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

String

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

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

List

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

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.

  • AFTER—Moves the layer after or below the reference layer.

  • BEFORE—Moves the layer before or above the reference layer.

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

String

openView()

Открывает и активизирует новую панель вида карты в приложении.

removeBookmark(remove_bookmark)

Метод removeBookmark позволяет вам удалить закладку из карты.

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

remove_bookmark

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

Bookmark

removeLayer(remove_layer)

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

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

remove_layer

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

Layer

removeTable(remove_table)

Обеспечивает возможность удаления таблицы с карты в проекте.

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

remove_table

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

Table

setColorModel(color_model)

Строковая константа для установки цветовой модели, связанной с Картой.

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

color_model

Ниже приведен список допустимых строк.

  • CMYK— Cyan, Magenta, Yellow, Black

  • RGB— Red, Green, Blue

String

setDefinition(definition_object)

Настраивает определение CIM для карты.

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

definition_object

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

Object

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

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

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

current_connection_info

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

String

new_connection_info

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

String

auto_update_joins_and_relates

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

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

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

Boolean

validate

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

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

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

Boolean

ignore_case

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

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

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

Boolean

updateTransformations(transformations)

Метод updateTransformations заменяет преобразования карты с помощью словаря.

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

transformations

The dictionary keys are defined below.

  • 2D—Horizontal transformations, if any exist

  • 3D—Vertical transformations, if any exist

Dictionary

Пример кода

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