Страница 1 из 1

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

Добавлено: 27 июн 2023, 13:43
altSobor
Добрый день. У меня следующая ситуация: я получаю данные для генерации стиля слоя в формате .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 переменной, без создания файла с этими данными?

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

Добавлено: 27 июн 2023, 16:42
konst555
Сразу сообразить не смог.
Если не хочется писать на диск, то может попробовать временный файл в памяти?

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

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