[FOSSGIS-Talk] Refresh Layer Symbology? <F5> für Symbolisierung?

Thomas B rdbath.regiodata at gmail.com
Fr Dez 18 11:21:55 CET 2020


Hallo Mike,
interessante Fragestellung.

Ich hab dieselbe Fragestellung sowohl bei uns hausintern vor kurzem gehabt
als auch bei einem externen Kunden, den ich beraten habe.
Scheinst also nicht alleine damit zu sein :-) Wäre eine gute
Core-Funktionalität.

Da es meines Wissens nach momentan keine Boardmittel dafür gibt hab ich die
Frage gerade mal als Anlass genommen, kurz ein Proof of Concept dafür zu
machen.
Die grundlegende PyQGIS-Idee kommt von
https://gis.stackexchange.com/a/371589/67477.

Der dort gezeigte Code funktioniert so lange du keine anderen Layer mit
nicht-postgresql-DataProvider im Projekt hast.

Ich hab das ganze erweitert, so dass nicht-postgresql-Layer nicht mehr
stören und dass über alle Layer des Projektes iteriert wird.
Den Code habe ich schnell in ein Plugin gegossen und bei mir erfolgreich
getestet:

https://github.com/thbaumann/qgis_db_style_reloader

Zum Testen: Installierbar über download der Zipdatei und Entpacken in den
python/plugin-Ordner der QGIS3-Installation:
https://github.com/thbaumann/qgis_db_style_reloader/archive/main.zip

Falls du das Proof-of-Concept-Plugin testen möchtest am besten nicht gleich
auf dein Produktiv-Projekt loslassen :-)

Es iteriert über alle Layer im Projekt und lädt (ohne weitere Rückfrage)
für die postgres-Layer den Default-Stil aus der DB und ersetzt damit
den *jeweils
aktiven* Layerstil.
Ggf. vorhandene andere Layer-Stile bleiben im Projekt erhalten.

Grundsätzlich könnte man auch in der startup.py das Öffnen von Projekten
überwachen und dann wenn alle Layer geladen sind und postgres-Layer
vorhanden sind die Stile automatisch reloaden.

Viele Grüße,
Thomas




Am Do., 17. Dez. 2020 um 09:20 Uhr schrieb mike at elstermanns.de <
mike at elstermanns.de>:

> Hallo zusammen,
>
> folgendes Problem:
> Wir halten die komplette Symbolisierung der DB-Layer auch in der
> PostGIS-DB, da ist praktisch, weil so zu jedem Layer (Thema) gleich die
> Default-Symbolisierung geladen wird und der Nutzer braucht sich erst einmal
> um nichts kümmern. Lädt der Nutzer solche Themen ins Projekt, hat er gleich
> die richtige Default-Darstellung. Meist lässt er es so oder ändert nur
> Kleinigkeiten, mitunter aber auch mehr und speichert diese in seinem
> Projekt. Über die Zeit hat er viele dieser Projekte.
>
> Ändern wir nun aber zentral die Default-Symolisierung in der DB, kriegen
> das die vorhanden Projekte ja nicht mit (es gewinnt die Symbolisierung des
> Projektes) und der Nutzer muss im schlimmsten Fall alle Projekte öffnen und
> die betroffenen Themen neu laden das können aber Hunderte sein!
> Gibt es einen einfacheren Weg, die betroffenen Themen mit der neuen
> Gestaltung aus der DB zu refreshen? Also quasi, rechte MT und „Refresh
> Layer from DB-Symbology“, ein <F5> für Symbolisierung?
>
> mikeE., der #geoObserver.
> http://www.geoObserver.de
>
>
>
> --
> ....................................................................
> FOSSGIS Veranstaltungen
> https://www.fossgis.de/news/fossgis-events/
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/             https://twitter.com/fossgis_eV
>
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste