Загрузка стиля для слоя через pyqgis

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
altSobor
Новоприбывший
Сообщения: 1
Зарегистрирован: 27 июн 2023, 13:15
Репутация: 0
Откуда: Самара

Загрузка стиля для слоя через pyqgis

Сообщение altSobor » 27 июн 2023, 13:43

Добрый день. У меня следующая ситуация: я получаю данные для генерации стиля слоя в формате .sld, который нужно применить к слою. Я делала это через:

layer.loadSLDStyle("адрес")

Для этого нужно предварительно сохранить стиль как файл, чтобы потом его загрузить.
Задача избавится от этого шага, т.к. система возможно будет заблокирована от записи левых файлов.
Я пыталась записывать стиль без сохранения через:

style_doc = QDomDocument("qgis")
style_doc.setContent(response.text)
layer.importNamedStyle(style_doc)
QgsProject.instance().addMapLayer(layer)

и

providers = QgsProviderRegistry.instance().providerList()
providers.saveStyle(providerKey = providers, sldStyle=response.text, styleName="name"

Ни тот, ни тот способ не вносит вообще никаких изменений ни в стиль слоя, ни в список записанных слоев. Как еще можно решить проблему создания слоя из str переменной, без создания файла с этими данными?

konst555
Активный участник
Сообщения: 212
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Загрузка стиля для слоя через pyqgis

Сообщение konst555 » 27 июн 2023, 16:42

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

Посмотрите здесь:
Создание временного файла с использованием метода NamedTemporaryFile ()
https://andreyex.ru/stati/rabota-s-vrem ... -v-python/

Или здесь:
https://ru.stackoverflow.com/questions/ ... 0%BE%D0%BC

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя