createLabelClass
Краткая информация
Предоставляет доступ к базовым свойствам слоя и методам.
Обсуждение
На слои можно ссылаться внутри проекта, используя метод listLayers класса Map или из файла слоя (.lyr или .lyrx), сохраненного на диске, используя метод listLayers класса LayerFile.
Объект Layer имеет единый универсальный дизайн для работы со всеми слоями. Существует большое количество различных типов слоев, и не все они поддерживают одинаковый набор свойств. Например, векторный слой поддерживает определяющий запрос, тогда как растровый слой его не поддерживает, при этом каталог растров - поддерживает. Вместо того, чтобы работать с разными отдельными объектами слоя для всех возможных типов слоев и комбинаций свойств, есть некоторые полезные свойства, которые позволяют получить информацию о слое и поддерживаемых им свойствах. Существует множество свойств is, которые позволяют определить, подходит ли слой к общей категории, например, is3DLayer, isFeatureLayer, isGroupLayer, isRasterLayer, isWebLayer, и т.д.
Есть несколько специализированных слоев и наборов данных, которые не попадают ни в одну из этих общих категорий: подклассы аннотаций, объекты-размеры, наборы данных Terrain, наборы данных топологии и так далее. В этих случаях, необходимо проверить другие свойства и изолировать интересующий вас слой, прежде чем начинать работу с ним. Метод supports используется, чтобы помочь определить, какой конкретный слой поддерживает конкретное свойство слоя. Это дает возможность проверить, поддерживает ли слой свойство, прежде чем пытаться получить или установить его значение, и тем самым уменьшает необходимость в дополнительном поиске ошибок. Например, см. следующий код:
if lyr.supports("BRIGHTNESS"):
lyr.brightness = 10
Метод listLayers возвращает значения индекса Map class, которые генерируются сверху вниз в том порядке, в каком они появляются в таблице содержания, или как они появляются в файле слоя. То же самое происходит, если составной слой находится внутри другого составного слоя. Например, карта с одним составным слоем, содержащим три подслоя, возвратит список из четырех имен слоев, при этом групповой слой будет первым, а три подслоя - вторым, третьим и четвертым. Есть два способа определения составного слоя. Во-первых, вы можете проверить, поддерживает ли слой свойство isGroupLayer. Во-вторых, вы можете оценить свойство longName. Значение слоя longName будет включать имя группы в дополнение к имени слоя. Например, слой с именем Layer1 в составном слое Group1, будет иметь значение longName, равное Group1\Layer1. Если значение name равно значению longName, слой не находится внутри составного слоя. При работе с подслоями составных слоев свойство longName будет содержать и имя подслоя, и имя слоя верхнего уровня.
ArcGIS Pro может читать устаревшие типы файлов .lyr, но сохранять может только типы файлов .lyrx. При ссылке на тип файла .lyr и вызове метода save он будет преобразован в тип файла .lyrx, но с тем же именем файла.
Векторный слой может поддерживать от нуля до нескольких определяющих запросов, но только один запрос может быть активным. Также возможно, что присутствует один или несколько определяющих запросов, но ни один из них не активен. Существует два способа управлять определяющими запросами. Во-первых, вы можете использовать свойство definitionQuery. Если вы устанавливаете уникальную строку SQL на слое, не имеющем определяющего запроса, или слое, который имеет несколько определяющих запросов, новый определяющий запрос добавляется и становится активным запросом. Если вы устанавливаете строку SQL на слое, который уже имеет такой же запрос, он устанавливает ее как активный определяющий запрос, если он еще не активен. Второй способ управлять определяющими запросами - использовать комбинацию функций listDefinitionQueries и updateDefinitionQueries. Функция listDefinitionQueries возвращает список словарей Python, которые представляют свойства, связанные с каждым запросом. Ключи словаря - name, sql и isActive. Определяющие запросы могут быть добавлены, изменены или удалены из списка Python с помощью базовых функций Python. Значение словаря isActive может быть установлено на True, чтобы установить активный запрос. Снова только один запрос может быть активным. При попытке сделать активным более одного запроса будет возвращена ошибка. После внесения изменений функция updateDefinitionQueries используется для установки новых изменений.
Изменение источника данных слоя – это общее требование. Более подробное обсуждение, сведения о параметрах, сценарии и примеры кода см. в разделе справки Обновление и исправление источников данных.
Синтаксис
createLabelClass()
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
brightness (Чтение / Запись) |
Значение яркости слоя. По умолчанию нормальная яркость - 0 процентов. Введите любое значение от +100 процентов до -100 процентов. Введите знак плюс или минус слева от значения, чтобы указать, находится ли оно выше или ниже 0. |
Integer |
|
connectionProperties (Только для чтения) |
Возвращает информацию о подключении к источнику данных слоя как словарь Python. |
Dictionary |
|
contrast (Чтение / Запись) |
Значение контраста слоя. По умолчанию нейтральный контраст - 0 процентов. Введите любое значение от +100 процентов до -100 процентов. Введите знак плюс или минус слева от значения, чтобы указать, находится ли оно выше или ниже 0. |
Integer |
|
dataSource (Только для чтения) |
Возвращает полный путь к источнику данных слоя. Он включает полный путь к рабочей области и имя набора данных. Для слоев многопользовательских баз геоданных возвращается строка, содержащая информацию о подключении слоя. Подсказка:Слои многопользовательских баз геоданных в проекте ArcGIS Pro не хранят путь к файлу подключения к базе данных ( |
String |
|
definitionQuery (Чтение / Запись) |
Определяющий запрос слоя. Если вы устанавливаете уникальную строку SQL на слое, не имеющем определяющего запроса, или слое, который имеет несколько определяющих запросов, новый определяющий запрос добавляется и становится активным запросом. Если вы устанавливаете строку SQL на слое, который уже имеет такой же запрос, он просто устанавливает ее как активный определяющий запрос, если он еще не активен. |
String |
|
elevation (Только для чтения) |
Возвращает объект |
Object |
|
groupType (Только для чтения) |
Возвращает тип составного слоя. Слой должен быть составным, поэтому лучше сначала проверить, что
|
String |
|
is3DLayer (Только для чтения) |
Возвращает |
Boolean |
|
isBasemapLayer (Только для чтения) |
Возвращает |
Boolean |
|
isBroken (Только для чтения) |
Возвращает |
Boolean |
|
isFeatureLayer (Только для чтения) |
Возвращает |
Boolean |
|
isGraphicsLayer (Только для чтения) |
Возвращает |
Boolean |
|
isGroupLayer (Только для чтения) |
Возвращает |
Boolean |
|
isNetworkAnalystLayer (Только для чтения) |
Возвращает |
Boolean |
|
isNetworkDatasetLayer (Только для чтения) |
Возвращает |
Boolean |
|
isParcelFabricLayer (Только для чтения) |
Возвращает |
Boolean |
|
isRasterLayer (Только для чтения) |
Возвращает |
Boolean |
|
isSceneLayer (Только для чтения) |
Возвращает |
Boolean |
|
isTimeEnabled (Только для чтения) |
Указывает, включено ли время в слое. Если |
Boolean |
|
isTopologyLayer (Только для чтения) |
Возвращает |
Boolean |
|
isWebLayer (Только для чтения) |
Возвращает |
Boolean |
|
longName (Только для чтения) |
Полное имя слоя, включая структуру составного слоя. |
String |
|
maxThreshold (Чтение / Запись) |
Порог максимального масштаба слоя для 2D-карт и его максимальное расстояние над поверхностью земли для 3D-карт. Слой не будет отображаться, если степень увеличения превзошла максимальный масштаб. Для очистки максимального масштаба установите значение на 0. |
Double |
|
metadata (Чтение / Запись) |
Получите или задайте информацию о Метаданных класса слоя. Примечание:Установка метаданных зависит от значения свойства |
Metadata |
|
minThreshold (Чтение / Запись) |
Порог минимального масштаба слоя для 2D-карт и его максимальное расстояние над поверхностью земли для 3D-карт. Слой не будет отображаться, если степень уменьшения превзошла минимальный масштаб. Для очистки минимального масштаба установите значение на 0. |
Double |
|
name (Чтение / Запись) |
Имя слоя в том виде, в каком оно будет выглядеть в таблице содержания. Можно использовать пробелы. Является важным, чтобы все слои карты имели уникальные имена, благодаря чему на них было бы легко ссылаться по имени. |
String |
|
pageQuery (Только для чтения) |
Возвращает именованный кортеж Python свойств запроса страницы:
|
tuple |
|
showLabels (Чтение / Запись) |
Управляет отображением надписей слоя. Если задано |
Boolean |
|
symbology (Чтение / Запись) |
Обеспечивает доступ к символам слоя. |
Object |
|
time (Только для чтения) |
Возвращает объект LayerTime, если на слое включено время. |
LayerTime |
|
transparency (Чтение / Запись) |
Значение прозрачности слоя. Это свойство позволяет вам видеть сквозь слой. Используйте значения между |
Integer |
|
URI (Только для чтения) |
Universal Resource Indicator слоя. Это уникальный идентификатор слоя в проекте, который иногда требуется при использовании доступа Python CIM. После добавления слоя и установления URI значение со временем не меняется. Например, если вы измените имя слоя, |
String |
|
visible (Чтение / Запись) |
Управляет отображением слоя. Если задано |
Boolean |
Методы
createLabelClass(name, expression, {sql_query}, {labelclass_language})
Метод createLabelClass создает LabelClass для слоя.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
name |
The name of the new label class. Names must be unique. |
String |
|
expression |
An expression to be applied. Its syntax must match the (Значение по умолчанию — None) |
String |
|
sql_query (Дополнительный) |
An optional query that is useful for restricting the features that are labeled. |
String |
|
labelclass_language (Дополнительный) |
The following are the supported scripting languages.
(Значение по умолчанию — ARCADE) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
LabelClass |
Если указана переменная, она будет ссылаться на вновь возращенный объект |
disableTime()
Отключает свойства времени для объекта Layer.
enableTime({startTimeField}, {endTimeField}, {autoCalculateTimeRange}, {timeDimension})
Включает время в слое, если там имеется информация о времени.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
startTimeField (Дополнительный) |
The name of the field containing the start time values. If each feature has a single time field, specify that field name in the (Значение по умолчанию — None) |
String |
|
endTimeField (Дополнительный) |
The name of the field containing the end time values. Not all layers use an end time field. If each feature has a single time field, specify that field name in the (Значение по умолчанию — None) |
String |
|
autoCalculateTimeRange (Дополнительный) |
If set to True, the start and end time attribute information is used to calculate the layer's time extent. (Значение по умолчанию — True) |
Boolean |
|
timeDimension (Дополнительный) |
The name of the dimension containing time values when using netCDF data. (Значение по умолчанию — None) |
String |
extrusion({extrusion_type}, {expression})
Вытягивает 2D объекты слоя для отображения 3D символов.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
extrusion_type (Дополнительный) |
Строка, задающая метод вытягивания. Значение по умолчанию равно
(Значение по умолчанию — NONE) |
String |
|
expression (Дополнительный) |
Строка, которая определяет выражение вытягивания, которое предоставляет абсолютную высоту вытягивания для каждого объекта. (Значение по умолчанию — None) |
String |
getDefinition(cim_version)
Получает определение слоя CIM.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
cim_version |
A string that represents the major version of the CIM. |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Object |
Возвращает определение CIM для объекта |
getSelectionSet()
Возвращает выборку слоя как набор Object ID Python.
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Возвращает определение CIM для |
getSymbologyDefinition(cim_version)
Возвращает условные обозначения слоя CIM.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
cim_version |
A string that represents the major version of the CIM that will be used.
|
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Object |
Возвращает условные обозначения CIM для |
listCharts({wildcard})
Возвращает список объектов диаграммы Python в слое.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
A wildcard is based on the chart title and is not case sensitive. A combination of asterisks (*) and characters can be used to help limit the resulting list. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Возвращает список объектов диаграммы Python в слое. |
listDefinitionQueries({wildcard})
Возвращает список определяющих запросов Python, связанных со слоем.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
A wildcard is based on the query name and is not case sensitive. A combination of asterisks (*) and characters can be used to limit the resulting list. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Список словарей Python, представляющих свойства, связанные с каждым запросом. Ключами этого словаря являются |
listLabelClasses({wildcard})
Возвращает список Python объектов LabelClass в слое.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
Групповой символ базируется на имени класса надписей и не является чувствительным к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Возвращает список Python объектов LabelClass в слое. |
listLayers({wildcard})
Возвращает список Python для объектов Слой из группового слоя.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
Подстановочный знак основан на имени слоя и не чувствителен к регистру. Для наложения ограничений на результирующий список можно использовать сочетание звездочек (*) и символов. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Возвращает список Python для объектов Слой из группового слоя. |
listTables({wildcard})
Возвращает список Python объектов Table, которые существуют в составном слое.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
wildcard (Дополнительный) |
A wildcard is based on the table name and is not case sensitive. A combination of asterisks (*) and characters can be used to limit the resulting list. (Значение по умолчанию — None) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
List |
Список Python объектов Table в слое. |
openTableView({show_selected})
Метод openTableView открывает и активирует вид таблицы атрибутов слоя в приложении.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
show_selected (Дополнительный) |
A Boolean that specifies whether all rows will be displayed in the view or only the selected rows. (Значение по умолчанию — False) |
Boolean |
pasteProperties(source_layer, {layer_paste_properties[layer_paste_properties,...]})
Метод pasteProperties вставляет свойства из одного слоя объектов в другой слой объектов.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
source_layer |
A feature layer with the properties that will be pasted. |
Layer |
|
layer_paste_properties[layer_paste_properties,...] (Дополнительный) |
A single string or a list of strings that specify the property or properties that will be pasted. For example,
(Значение по умолчанию — ALL) |
String |
saveACopy(file_name)
Сохраняет слой в файл слоя (.lyrx).
| Имя | Объяснение | Тип данных |
|---|---|---|
|
file_name |
Строка, которая включает местоположение и имя выходного файла слоя ( |
String |
setDefinition(definition_object)
Настраивает определение слоя CIM.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
definition_object |
Объект измененного определения CIM, изначально полученный с помощью |
Object |
setGroupType(group_type)
Метод setGroupType задает тип группы слоя.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
group_type |
A string that specifies the selection method that will be used.
|
String |
setPageQuery({field_name}, {match})
Метод setPageQuery задает фильтр запроса к странице для слоя.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
field_name (Дополнительный) |
The name of the field that contains values that match the map series page name field in the index layer. (Значение по умолчанию — None) |
String |
|
match (Дополнительный) |
If set to (Значение по умолчанию — True) |
Boolean |
setSelectionSet({oidList[oidList,...]}, {method})
Задает выборку слоя, используя список Object ID Python.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
oidList[oidList,...] (Дополнительный) |
Список Object ID Python для работы с соответствующим способом выборки объектов. (Значение по умолчанию — None) |
Integer |
|
method (Дополнительный) |
Строка, задающая используемый метод выборки.
(Значение по умолчанию — NEW) |
String |
setSymbologyDefinition(definition_object)
Задает условные обозначения слоя CIM.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
definition_object |
A modified CIM definition object originally retrieved using |
Object |
supports(layer_property)
Используется для определения, поддерживает ли конкретный тип слоя свойство для объекта слоя. Не все слои поддерживают одинаковый набор свойств; свойство supports может быть использовано для тестирования, поддерживает ли слой данное свойство перед попыткой его установить.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
layer_property |
The name of a particular layer property that will be tested.
(Значение по умолчанию — name) |
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Boolean |
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 |
updateDefinitionQueries(definitionQueries[definitionQueries,...])
Обновления коллекции определяющих запросов слоя.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
definitionQueries[definitionQueries,...] |
Updates a list of dictionaries that represent the properties of each definition query. |
List |
updateLayerFromJSON(json_data)
Обновляет слой из строки JSON.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
json_data |
The layer definition in JavaScript Object Notation (JSON) format. See the |
String |
Пример кода
Следующий скрипт печатает имя каждой карты в проекте и перечисляет имена слоев каждой карты. Скрипт также добавляет префикс (BROKEN) к имени слоя, если он имеет поврежденный источник данных.
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
for m in aprx.listMaps():
print("Map: {0} Layers".format(m.name))
for lyr in m.listLayers():
if lyr.isBroken:
print("(BROKEN) " + lyr.name)
else:
print(" " + lyr.name)
del aprx
Следующий скрипт очищает все запросы определения слоев и отключает надписи для всех слоев на карте с именем Yosemite National Park:
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
m = aprx.listMaps("Yosemite National Park")[0]
for lyr in m.listLayers():
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery = ""
if lyr.supports("SHOWLABELS"):
lyr.showLabels = False
aprx.save()
del aprx
Следующий скрипт добавляет новый определяющий запрос к слою или устанавливает тот же запрос в качестве активного определяющего запроса, если строка SQL уже существует:
p = arcpy.mp.ArcGISProject('current')
m = p.listMaps()[0]
l = m.listLayers()[0]
if l.supports('DefinitionQuery'):
l.definitionQuery = "AREA > 3000000"
Следующий скрипт создает новый определяющий запрос, добавляя словарь Python к существующим запросам списка. Поскольку запрос может уже быть активным, важно сначала очистить существующие активные запросы, прежде чем устанавливать новый активный запрос.
p = arcpy.mp.ArcGISProject('current')
m = p.listMaps()[0]
l = m.listLayers()[0]
if l.supports('DefinitionQuery'):
#Get the list of definition queries
dql = l.listDefinitionQueries()
#Clear active definition queries otherwise the update will fail if there is already an active query
for dq in dql:
dq['isActive'] = False
#Create a new definition query and append it to the list
dql.append({'name': 'Appended Query', 'sql': "name = 'Lake Superior'", 'isActive': True})
#Update the definition queries with the newly modified list
l.updateDefinitionQueries(dql)