Re: [FOSSGIS-Talk] QGIS Layoutvorlage Datendefinierten Übersteuerung für Massstabsleiste
David Koster
david.lade at gmx.de
Sa Jun 28 22:16:12 CEST 2025
Hallo Jens,
möglicherweise liegt es daran, dass QGIS einen eingegebenen Maßstab von
z.B. 50 nicht zwingend auch als 50 intern speichert, sondern als
Fließkommazahl nahe 50 (z.B. 50.000000000010544).
Wenn du also 50 als Maßstab eingibst, wird nicht exakt 50 gespeichert
und deine Regel greift entsprechend nicht.
Du kannst alternativ folgendes probieren, wobei die gespeicherte
Maßstabszahl "zurückgerundet" wird:
CASE
WHEN round(map_get(item_variables('Karte_1'), 'map_scale')) = 50 THEN 1.0
WHEN round(map_get(item_variables('Karte_1'), 'map_scale')) = 250
THEN 2.5
WHEN round(map_get(item_variables('Karte_1'), 'map_scale')) = 500
THEN 5.0
WHEN round(map_get(item_variables('Karte_1'), 'map_scale')) = 5000
THEN 50.0
WHEN round(map_get(item_variables('Karte_1'), 'map_scale')) = 50000
THEN 500.0
END
Ggf. muss man nach der Maßstabseingabe nochmal mit F5 aktualisieren.
Ich drücke die Daumen, dass das hilft.
Schöne Grüße
David
_____________________________________________________
Am 28.06.2025 um 17:26 schrieb Jens via FOSSGIS-Talk-Liste:
> Hallo an alle,
>
> ich erstelle gerade Druckvorlagen mit den Blattformaten A4 und A3.
> Diese sollen von allen Benutzer:innen für schnelle einfache Ausdrucke
> verwendet werden.
> In den Vorlagen ist auch ein begrenzter Platz für die Darstellung der
> Maßstabsleiste. Die Anwender:innen sollen ohne Probleme einen großen
> Maßstabsbereich verwenden können. Dieser soll von 1:50 bis 1:500.000,
> mit den üblichen Schritten dazwischen wie z.B. 1:100, 150, 200, 250,
> 500, ...25000 usw. gehen.
> Jetzt habe ich ein Problem mit der entsprechenden Ausdehnung der
> Maßstabsleiste.
> Dies kann man ja über die Menüpunkte 'Segmente', 'Feste Breite' oder
> 'An Segmentbreite anpassen' entsprechend einrichten.
> Darum habe ich eine Regel für meine universellen Druckvorlagen
> erstellt, die entsprechend des eingestellten Maßstabes im Feld
> 'Feste Breite' automatisch einen passenden Wert einträgt, damit die
> Leiste immer relativ gleich breit ist.
> Hier mal ein Auszug:
>
> CASE
> WHEN map_get(item_variables('Karte_1'), 'map_scale') = 50 THEN 1.0
> WHEN map_get(item_variables('Karte_1'), 'map_scale') = 250 THEN 2.5
> WHEN map_get(item_variables('Karte_1'), 'map_scale') = 500 THEN 5.0
> WHEN map_get(item_variables('Karte_1'), 'map_scale') = 5000 THEN 50.0
> WHEN map_get(item_variables('Karte_1'), 'map_scale') = 50000 THEN 500.0
> END
>
> Gebe ich die Werte manuell ein, wird die Maßstabsleiste wie gewünscht
> angezeigt, aber über die Regeln funktioniert es überhaupt nicht.
> Regeln funktionieren auch nicht, wenn ich diese für die Menüpunkte
> 'Segmente' oder 'An Segmentbreite anpassen' verwende.
> Alle Werte habe ich jedes mal auch manuell eingegeben und geprüft.
> Habe auch mit den Angaben hinter "THEN" experimentiert, also auch
> '1.0' oder '1,0' verwendet, aber ohne Wirkung.
>
> Was mich auch ein wenig wundert, konnte man 'früher' nicht einfach mit
> der Variable 'map_scale' den aktuellen Kartenmaßstab abfragen?
>
> Wo ist hier mein Denkfehler, oder ist das ein Bug? Wenn ich in QGIS
> neben ein Eingabefeld den Button für eine
> 'Datendefinierten Übersteuerung' habe, dann sollte das doch
> funktionieren.
>
> Getestet unter W10 QGIS 3.40.7 LTR und
> Linux (Fedora) QGIS 3.44.0
>
> Beste Grüße, Jens
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste