StyleItem

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

Объект StyleItem обеспечивает доступ к свойствам и методам для элементов стилей.

Обсуждение

Символы, которые используются для отображения объектов или графических элементов на карте или в компоновке, сохраняются в файлах стилей (.stylx). Вы используете ленту Каталог, связанную с видом Каталог, для создания, просмотра и изменения стилей и их ресурсов. Системный стиль представлен уникальными наименованиями, такими как ArcGIS 2D, ArcGIS 3D и т.д., а также персональным стилем, именуемым Favorites. Стиль содержит элементы стиля, которые представлены значениями styleClass, например, точечный символ, легенда и масштабная линейка. Пользовательское значение style - это файл .stylx, у которого есть путь к папке и имя файла, заканчивающееся на .stylx. Пользовательские стили должны быть загружены и сохранены вместе с проектом. На них ссылаются, передавая их полный путь и имя файла, а не только их имя, как в случае с системными стилями.

Класс StyleItem позволяет создавать элементы в компоновке и в слое графики карты. Чтобы сослаться на существующий элемент стиля, используйте метод listSytleItems класса ArcGISProject и укажите соответствующее значение style_class для типа создаваемого элемента. Значение wildcard может быть использовано для уточнения поиска. Вы можете дополнительно уточнить поиск, протестировав значения свойств category и tags. Следующие методы принимают в качестве одного из параметров значение styleItem:

  • Метод createMapSurround для класса Layout.
  • Методы createGraphicElement, createPredefinedGraphicElement и createTextElement для класса ArcGISProject.

Свойства

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

Возвращает строку, которая содержит категорию элемента. Если значение отсутствует, будет возвращена пустая строка.

String
name
(только чтение)

Возвращает строку, которая содержит имя элемента в том виде, в котором оно отображается в Галерее символов или в Виде Каталог.

String
style
(только чтение)

Возвращает строку, которая представляет собой имя системного стиля, например ArcGIS 2D, персонального стиля, например Избранное, или пользовательского файла .stylx.

Примечание:

Стили должны быть уже добавлены в проект, прежде чем на них можно будет ссылаться в listStyleItems. Чтобы сослаться на пользовательский файл .stylx, используйте имя, которое появляется в приложении. Его можно просмотреть на Панели Каталог.

String
style_class
(только чтение)

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

  • LEGENDДля создания и изменения элементов легенды.
  • LINEДля создания и изменения графических элементов - полилиний.
  • NORTH_ARROWДля создания и изменения элементов зарамочного оформления карты - стрелок севера.
  • POINTДля создания и изменения графических элементов - точек.
  • POLYGONДля создания и изменения графических элементов - полигонов.
  • SCALE_BARДля создания и изменения элементов зарамочного оформления карты - масштабных линеек.
  • TEXTДля создания и изменения графических элементов - текста.
String
tags
(только чтение)

Возвращает строку с тегами, связанными с элементом. Если значение отсутствует, будет возвращена пустая строка.

String

Пример кода

StyleItem, пример 1

Следующий скрипт демонстрирует использование метода listStyleItems несколькими способами.

p = arcpy.mp.ArcGISProject('current')

#Print the point symbol names for all arrow related items in ArcGIS 2D
for styleItem in p.listStyleItems('ArcGIS 2D', 'POINT', 'Arrow*'):
    print(f'StyleItem Name: {styleItem.name}')


#Print polygon symbol names for ArcGIS 2D items from a catagory called shapes
for styleItem in p.listStyleItems('ArcGIS 2D', 'POLYGON'):
    if styleItem.category == 'Shapes':
        print(f'StyleItem Name: {styleItem.name}')


#Print all symbol names for a few style classes in a custom style belonging to a category
for styleClass in ['Point', 'Line', 'Polygon']:
    print(f'Style Class:{styleClass}\n')

    customStylePath = r'C:\Projects\MyOwnStyleFile.stylx'
    for styleItem in p.listStyleItems(customStylePath, styleClass):
        if styleItem.category == 'Capitol Forest':
            print(f'    StyleItem Name: {styleItem.name}')
    print('\n')
StyleItem, пример 2

Следующий сценарий создает компоновку, карту, фрейм карты и три зарамочных оформления карты, используя системный стиль ArcGIS 2D, системный стиль Favorites и файл пользовательского стиля.

def MakeRec_LL(llx, lly, w, h):
    xyRecList = [[llx, lly], [llx, lly+h], [llx+w,lly+h], [llx+w,lly], [llx,lly]]
    array = arcpy.Array([arcpy.Point(*coords) for coords in xyRecList])
    rec = arcpy.Polygon(array)
    return rec

p = arcpy.mp.ArcGISProject('current')

#Create a layout, map and mapframe
m = p.createMap('New Map', 'Map')
lyt = p.createLayout(8.5, 11, 'INCH', 'New Layout')
mf = lyt.createMapFrame(MakeRec_LL(0.5,5.5,7.5,5), m, "New Map Frame")
lyt.openView()

#Create scale bar using the system 'ArcGIS 2D' style
sbName = 'Double Alternating Scale Bar 1 Metric'
sbStyItm = p.listStyleItems('ArcGIS 2D', 'SCALE_BAR', sbName)[0]
sbEnv = MakeRec_LL(0.5, 5.5, 2.5, 0.5)
sb = lyt.createMapSurroundElement(sbEnv, 'Scale_bar', mf, sbStyItm)

#Create north arrow using the system 'Favorites' style
naStyItem = p.listStyleItems('Favorites', 'North_Arrow', 'Compass North 1')[0]
lyt.createMapSurroundElement(arcpy.Point(7,7), 'North_Arrow', mf, naStyItem)
                      
#Create a legend using a custom stylx file
customStylePath = r'C:\Projects\MyOwnStyleFile.stylx'
legStyItm = p.listStyleItems(customStylePath, 'LEGEND', 'Legend 2')[0]
lyt.createMapSurroundElement(arcpy.Point(0.5, 5), 'Legend', mf, legStyItm)