[Lizmap-de] WG: [Qgis-user] Storing and Retrieving Vector Layers with Styles to Postgres DB
peter.berger at bluewin.ch
peter.berger at bluewin.ch
Di Apr 8 03:05:39 PDT 2025
Versteht jemand wie man das anwendet? Habe Hemmung da Nachzufragen.
Gruss, Peter
Von: QGIS-User <qgis-user-bounces at lists.osgeo.org> Im Auftrag von Jorge Gustavo Rocha via QGIS-User
Gesendet: Dienstag, 8. April 2025 10:54
An: qgis-user at lists.osgeo.org
Betreff: Re: [Qgis-user] Storing and Retrieving Vector Layers with Styles to Postgres DB
Hi,
This is the code I use (since some years ago...) to write styles from all layers to the database:
mapGeometryType = {
0: "Point",
1: "Line",
2: "Polygon",
3: "UnknownGeometry",
4: "NullGeometry",
}
layers = QgsProject.instance().mapLayers()
for layer in layers.values():
if layer.type() == QgsMapLayer.VectorLayer:
if mapGeometryType[layer.geometryType()] != "NullGeometry":
layer.deleteStyleFromDatabase
layer.saveStyleToDatabase(name=layer.name(),description="Default style for {}".format(layer.name()), useAsDefault=True, uiFileContent="")
Since we are writing all with the flag "default style" there is no need to load them when opening the project.
Regards,
Jorge Gustavo
On 07/04/25 19:11, Ludwig Kniprath via QGIS-User wrote:
Hello Peter,
everything that users do in QGis can be done by Python scripts, including your steps listed below.
There are some difficulties for the desired "one step" solution, f. e. the name of the file-based layer must be converted in a valid and unique postgis table-name, the fields of the file-based layer must be stored with valid postgis field-types and -names and so on...
Taking into account all special features, exceptions and necessary settings, this results in a rather complex program, the implementation of which may be more complex than the manual implementation in QGis...
Just my two cents...
Ludwig
Am 07.04.25 um 08:45 schrieb peter.berger--- via QGIS-User:
There are serveral steps necessary to store from QGIS a vector layer with his style in a postgres DB. For a big amout of layers this is impracticaI.
Therfore I would do this in one step from QGIS. Is this in any way possible?
Peter Berger
Brunnwiesenstrasse 62
8049 Zürich
Schweiz
mobile +41 79 301 71 54
The several step procedure:
* Load the layer: Import the layer from a vector file into QGIS.
* Rename (if necessary): Give the layer an appropriate name.
* Transfer the layer to Postgres: Drag the layer into the PostgreSQL database. You will find it there with the specific name.
* Load the layer from Postgres: Import it back from the PostgreSQL database into QGIS.
* Assign the style: Copy the style from the original layer and assign it to the Postgres layer loaded in QGIS.
* Export the style: Export the style of the Postgres layer. You will now find an option to save the style with the exact name of the layer in the PostgreSQL database.
* Delete old layers and reload: Delete all associated layers and reload the layer from the PostgreSQL database.
_______________________________________________
QGIS-User mailing list
QGIS-User at lists.osgeo.org <mailto:QGIS-User at lists.osgeo.org>
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
QGIS-User mailing list
QGIS-User at lists.osgeo.org <mailto:QGIS-User at lists.osgeo.org>
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
--
Geomaster, LDA
VENHA DESCOBRIR O CAMINHO DO OPEN SOURCE CONNOSC
Rua Afonso Palmeira, 31, 7 D
4715-278 Braga
VAT/NIF 510 906 109
Phone +351 253 257 173
Site geomaster.pt <http://geomaster.pt>
GPS 41.54627, -8.40432
_____
Jorge Gustavo Rocha
CTO
Mobile +351 910 333 888
Email jgr at geomaster.pt <mailto:jgr at geomaster.pt>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20250408/85ebc4e3/attachment-0001.htm>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : cropped-geomaster300x300-1.png
Dateityp : image/png
Dateigröße : 33896 bytes
Beschreibung: nicht verfügbar
URL : <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20250408/85ebc4e3/attachment-0002.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image002.png
Dateityp : image/png
Dateigröße : 8633 bytes
Beschreibung: nicht verfügbar
URL : <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20250408/85ebc4e3/attachment-0003.png>
-------------- nächster Teil --------------
Ein eingebundener Text mit undefiniertem Zeichensatz wurde abgetrennt.
Name: Unbenannte Anlage 00009.txt
URL: <http://lists.osgeo.org/pipermail/lizmap-de/attachments/20250408/85ebc4e3/attachment-0001.txt>
Mehr Informationen über die Mailingliste Lizmap-de