Групповая коррекция размеров надписей

Вопросы связанные с работой ГИС Аксиома
Ответить
Аватара пользователя
SergeyV
Пользователь
Сообщения: 11
Зарегистрирован: 17 апр 2023, 07:29

Групповая коррекция размеров надписей

Сообщение SergeyV » 01 ноя 2024, 10:47

Здравствуйте! Меня интересует, есть ли возможность рассчитывать значение переменной new_size в приложенном коде исходя из требуемого размера текста на карте (см. рисунок).
Или хотя бы возможность задать значение в пунктах, которое будет соответствовать надписи на экране в текущем масштабе. Прощу прощения, если ранее этот вопрос уже был решен на форуме.

Код: Выделить всё

from PySide2.QtGui import QColor
import axipy

def get_text_style(current_style: axipy.TextStyleEffects) -> int:
    style = (
            int(current_style.bold) +
            int(current_style.italic) * 2 +
            int(current_style.underline) * 4 +
            int(current_style.shadow) * 32 +
            int(current_style.capital) * 512 +
            int(current_style.spacing) * 1024
    )
    
    if current_style.bg_type == axipy.TextBackgroundType.Frame:
        style += 16
    elif current_style.bg_type == axipy.TextBackgroundType.Outline:
        style += 256
    
    return style

if axipy.data_manager.selection:
    for feature in axipy.data_manager.selection:
        if isinstance(feature.geometry, axipy.Text):
            view = axipy.view_manager.active
            prev_text = feature.geometry
            prev_style = feature.style
            
            new_size = 100
            new_style = axipy.TextStyle(prev_style.fontname, new_size, get_text_style(prev_style), prev_style.color, prev_style.bg_color)
            new_style.callout = prev_style.callout;
            new_style.callout_style = prev_style.callout_style
            new_text = axipy.Text.create_by_style(prev_text.text, prev_text.startPoint, new_style, view, prev_text.angle, prev_text.coordsystem)
            new_text.endPoint = prev_text.endPoint
            
            feature.geometry = new_text
            axipy.data_manager.selection.update(feature)
Text_size.png
Text_size.png (5.46 КБ) 9518 просмотров
Аватара пользователя
SergeyV
Пользователь
Сообщения: 11
Зарегистрирован: 17 апр 2023, 07:29

Re: Групповая коррекция размеров надписей

Сообщение SergeyV » 01 ноя 2024, 10:48

Также пробовал сделать через scale(). Но возникает та же проблема с расчетом требуемых коэффициентов масштаба.
Аватара пользователя
Александр
Администратор
Сообщения: 621
Зарегистрирован: 18 апр 2019, 11:21

Re: Групповая коррекция размеров надписей

Сообщение Александр » 12 ноя 2024, 18:01

В axipy ошибка, связанная с размером текстовых объектов.
Мы провели исследование, и к сожалению, на данный момент нет простого способа определения и установки размера текста.

Мы работаем над исправлением этой проблемы и планируем внедрить необходимые изменения в ближайшем обновлении.
Аватара пользователя
SergeyV
Пользователь
Сообщения: 11
Зарегистрирован: 17 апр 2023, 07:29

Re: Групповая коррекция размеров надписей

Сообщение SergeyV » 15 ноя 2024, 13:40

Александр писал(а): 12 ноя 2024, 18:01 В axipy ошибка, связанная с размером текстовых объектов.
Мы провели исследование, и к сожалению, на данный момент нет простого способа определения и установки размера текста.

Мы работаем над исправлением этой проблемы и планируем внедрить необходимые изменения в ближайшем обновлении.
Сообщите, пожалуйста, о решении этой проблемы в этой теме.
Ответить