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 (Чтение / Запись) |
Возвращает цветовую модель, назначенную объекту |
String |
|
defaultCamera (Чтение / Запись) |
Предоставляет возможность получать или устанавливать настройки |
Camera |
|
defaultView (Только для чтения) |
Используется в сочетании с |
MapView |
|
excludedLayersFromClipping (Чтение / Запись) |
Список объектов |
List |
|
mapType (Только для чтения) |
Возвращает строку, которая сообщает информацию о типе объекта
|
String |
|
mapUnits (Только для чтения) |
Возвращает строковое значение, представляющее единицы карты для |
String |
|
metadata (Чтение / Запись) |
Получите или настройте информацию о классе Примечание:Установка метаданных зависит от значения свойства |
Metadata |
|
name (Чтение / Запись) |
Предоставляет возможность получать или устанавливать имя объекта |
String |
|
referenceScale (Чтение / Запись) |
Дает возможность получать или задавать значение прозрачности для |
Double |
|
spatialReference (Чтение / Запись) |
Дает возможность получать или задавать значение |
SpatialReference |
|
transformations (Только для чтения) |
Возвращает горизонтальные и вертикальные преобразования, связанные с картой, в виде словаря Python. Ключ словаря для горизонтальных преобразований — 2D, а для вертикальных — 3D. Чтобы изменить существующие преобразования, используйте |
Dictionary |
|
URI (Только для чтения) |
Universal Resource Indicator карты. Это уникальный идентификатор карты в проекте, который иногда требуется при использовании доступа |
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
(Значение по умолчанию — AUTOMATIC) |
String |
|
custom_parameters (Дополнительный) |
A Python dictionary of custom connection parameters. The KML (Значение по умолчанию — 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) |
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 (Дополнительный) |
Константа, определяющая размещение добавленного слоя или слоев в
(Значение по умолчанию — 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 |
Object |
|
selection (Дополнительный) |
Specifies whether a selection will be used for clipping. If set to Примечание: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 |
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 ( |
String |
exportToMAPX(out_mapx)
Экспортирует Map в файл карты.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
out_mapx |
Строка используется для сохранения |
String |
getDefinition(cim_version)
Получает определение CIM для карты.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
cim_version |
A string that represents the major version of the CIM. |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Object |
Возвращает определение CIM для объекта |
getWebLayerSharingDraft(server_type, service_type, service_name, {layers_and_tables})
Создает из карты план совместного использования, который можно настроить и опубликовать в ArcGIS Enterprise или ArcGIS Online.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
server_type |
Строка, представляющая тип сервера. Поддерживаются следующие типы серверов:
Подсказка:The |
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 ( |
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
(Значение по умолчанию — BEFORE) |
String |
listBookmarks({wildcard})
Возвращает список Python объектов bookmark (закладка) в Map.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
Групповой символ базируется на имени закладки и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Метод |
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 |
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
(Значение по умолчанию — 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 |
Ниже приведен список допустимых строк.
|
String |
setDefinition(definition_object)
Настраивает определение CIM для карты.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
definition_object |
Объект измененного определения CIM, изначально полученный с помощью |
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 |
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) |
Boolean |
|
validate (Дополнительный) |
If set to (Значение по умолчанию — 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 (Значение по умолчанию — False) |
Boolean |
updateTransformations(transformations)
Метод updateTransformations заменяет преобразования карты с помощью словаря.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
transformations |
The dictionary keys are defined below.
|
Dictionary |
Пример кода
Следующий скрипт ссылается на файл слоя и вставляет слой в карту над слоем, который уже существует на карте:
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)