Beschriftung/Ausgestaltung
  • einige Tipps und Hinweise zur Erstellung von Beschriftung finden Sie auch hier
Symboldefinition

Symbole für diesen DesignLayer. Wird hier kein Symbol definiert, werden die Einstellungen aus "Legende" der Ebene verwendet, bzw. wenn auch diese nicht vorhanden ist  - die Symboldatei der Ebene, dann die Standard-Palette des Projektes. 

Klicken Sie in diesem Feld auf die Schaltfläche b_dreipunkte.png, so wird der Symboleditor gewählt. Die Einrichtung der Beschriftung machen Sie im Reiter Text.

Hinweis: Aktualisieren Sie ihre Ebene immer, bevor Sie die Symboldefinition durchführen.

 

theSymbol

Legt die Symbolnummer für die Beschriftung fest. Diese kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden. 

Alternativ kann über den Symboleditor im Feld Symboldefinition die Schriftart eingerichtet werden.

theFile

Legt den Namen der IWAN-Skript-Datei fest. Die IWAN-Skript-Anweisungen "Go;" und "End;" dürfen in dieser Datei nicht enthalten sein. Dieser optionale Parameter überschreibt "theTextField". Das Skript wird vor jeder Ausführung gelesen. Wenn die gewünschten Ergebnisse eintreten, sollte aus Performancegründen der Inhalt mit "theTextField" konstant definiert werden.

theTextField

Legt den Beschriftungstext für die Anzeige im cardo Auskunftssystem fest. Zusätzlich zu diesem Feld müssen die Felder theSizeField, theBasePoint und theAlign angegeben werden.

Hinweis Designlayer: COLUMN:Spaltenname muss notiert werden, um auf die Spalte zuzugreifen.

Dieser kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden.  Durch einen Klick auf die Schaltfläche b_dreipunkte.png öffnet sich ein Dialog. Hier können Sie den Wertetyp (konstant, Spalte oder Script) wählen. Für die Auswahl der Spalten klicken Sie am Rand der Zeile auf das Symbol b_auswahlpfeil_unten.png und wählen den gewünschten Spaltennamen aus.
thetextfield_dialog.png

 

Im Feld theTextField können Sie einen Ausdruck definieren. Wählen Sie als Wertetyp Skriptblock und geben Sie ein Skript für den Beschreibungstext ein:

Beispiel 1:

if (compare($STR_BEF,  "NEIN",eq)) ;

printf("%s\n%s\n%.1f%s", "Wanderwegkategorie:", $WEG_KAT, $SHAPE_LENG, "m")

endif;

Das Skipt muss ein IWAN6 Skript sein! Ggf. sprechen Sie uns dazu an.

Erläuterung: Wenn im Feld STR_BEF (Straßenbefahrung für Wanderwege) ein NEIN (Wanderweg nicht auf der Straße, Fußweg vorhanden) steht, soll die Wanderwegkategorie mit entsprechender Länge ausgegeben werden.

beschriftung_skript.png

Beispiel 2: Beschriftung aus zwei Sachdatenspalten (BW und Gemeinde)

printf("%s%s%s%s", "Bauwerk ", $BW, " in der Gemeinde ", $GEMEINDE)

ausdruck_isql_beschriftung.png

Beispiel 3: Schrift (Beschriftung) soll ab einem Maßstab > 1:250000 nicht mehr angezeigt werden (Schrift maßstababhängig Maßstabsabhängigkeit)

if (compare($CURR_MAPSCALE,250000,GT));endscript();endif;
print($NAME_1);

Name_1: Spaltenname, aus dem die Beschriftung kommt

 

Beispiel 4: Ausgabe eines Wertes in Prozent, bspw. 0,48762  wird zu 48,8% (Rundung auf 1 Stelle nach dem Komma)

printf("%.1f%s", ((($Prozentwert*1000)+0.5)/10), "%" )

 

Beispiel 5: Beschriftung soll nur zwischen den Bereichen 1:10000 und 1:50000 angezeigt werden

if(compare($CURR_MAPSCALE,50000,GT));endscript();endif;
if(compare($CURR_MAPSCALE,10000,LT)); endscript();endif;
print($Spaltenname);

 

Beispiel 6: Definition mehrerer Maßstabsbereiche um die Beschriftung anhand des Maßstabs zu zeichnen. Genutzt wurde hier eine verschachtelte IIF-Anweisung.

iif (
Bedingung:value,
TruePart:value,
FalsePart:value
);

Bedingung: die zu prüfende Bedingung.
TruePart: Rückgabewert, wenn der Ausdruck Wahr ergibt.
FalsePart: Rückgabewert, wenn der Ausdruck Falsch ergibt.

printf(IIF(Compare($CURR_MAPSCALE,10000,LT),(IIF(Compare(1000,500,GT),"Straßenbezeichnungdrucken10000","keine Ausgabe")),(IIF(Compare($CURR_MAPSCALE,20001,LT),(IIF(Compare(2000,1000,GT),"Straßenbezeichnungdrucken20000","keine Ausgabe")),(IIF(Compare($CURR_MAPSCALE,30001,LT),(IIF(Compare(3000,1500,GT),"Straßenbezeichnungdrucken30000","keine Ausgabe")),"keine"))))));

Im Beispiel wird in Abhängigkeit eines Maßstabes die Bezeichnung gedruckt, aber nur dann, wenn die Länge des Abschnitts entsprechend erfüllt ist. Das Feld Laenge wird On the Fly in der Datenquelle berechnet.

printf(IIF(Compare($CURR_MAPSCALE,10000,LT),(IIF(Compare($LAENGE,500,GT),"Straßenbezeichnungdrucken10000","keine Ausgabe")),(IIF(Compare($CURR_MAPSCALE,20001,LT),(IIF(Compare($LAENGE,1000,GT),"Straßenbezeichnungdrucken20000","keine Ausgabe")),(IIF(Compare($CURR_MAPSCALE,30001,LT),(IIF(Compare($LAENGE,1500,GT),"Straßenbezeichnungdrucken30000","keine Ausgabe")),"keine")))))); 

Beispiel 7: Beschriftung anzeigen, wenn das Wort school in der Spalte type steht, dann nichts schreiben.

if (compare($type, "school", NE));

print($type);
endif;

Mehr zum Thema?

theSizeField

Legt die Größe der Beschriftung in Karteneinheiten fest. Diese kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden. 

Haben Sie eine Beschriftung mit dem Symboleditor erstellt (siehe Feld Symboldefinition), so müssen Sie in dieses Feld eine 0 eintragen, sonst wird diese Einstellung primär ausgewertet.

theAngleField

Legt den Winkel für die Beschriftung fest. Dieser kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden. Bei Linien kann auch "INDIRECTION" angegeben werden, um den Winkel entsprechend des Verlaufs der Linie zu verwenden.

Hinweis: wird der Wert aus einer Spalte bezogen, erfolgt eine Umrechnung in RAD!

Beispiele:

thealign_01.png

theAngleField:leer

 

thealign_02.png

theAngleField:45°

 indirection_theanglefield.png

theAngleField: INDIRECTION

 

theBasePoint

Legt den Punkt der Geometrie für das DesignObjekt fest, der als Bezugspunkt verwendet werden soll. Mögliche Werte sind:

  • "FIRST" - verwendet den ersten Punkt,
  • "LAST" - verwendet den letzten Punkt,
  • "EXTEND:CC" - ermittelt den entsprechend Punkt zu der angegebenen Position (bspw: "CC" - "Center Center", "UL" - "Upper left", "LR" - "Lower Right") des umschließenden Rechtecks,
  • "CENTROID" - ermittelt den Flächenschwerpunkt für Flächen und den exakten Mittelpunkt auf der Linie für Linien,
  • "FEATURE" - ermittelt Stützpunkte entlang der Linie für Linien,
  • "INTERIORPOINT" - ermittelt einen Punkt der garantiert in der Geometrie liegt. Dieser kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden.

Beispiel Linienbeschriftung, theBasePoint =Feature

thebasepoint.png

theAlign

Legt die Ausrichtung des Design Objekts zum Bezugspunkt fest.  

Eingabeformat:"X-Ausrichtung/Y-Ausrichtung", bspw.:

  • "UL" für "Upper Left",
  • "UC" für "Upper Center",
  • "LR" für "Lower Right",
  • "CC" für "Center Center".

Diese kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden. 

Beispiel:

align.png

weitere Parameter: theBasePoint: first

beispiel_align.png

theXOffset

Legt falls erforderlich einen Versatz in Karteneinheiten in X-Richtung relativ zum Bezugspunkt fest. Dieser kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden.  (Negative Zahlen -> Versatz nach Links)

xoffset.png

Tipp: Ist die Symbolgröße in Pixel angegeben, so bietet es sich an die Funktion ToGeoDistance(10) zu nutzen. Hierbei wird der Abstand von Karteneinheiten in Pixel umgerechnet und ist in den unterschiedlichen Maßstabsbereichen/Zoomstufen immer gleich groß.

Für Maßstabsabhängige Abstände würde sich auch folgendes Skript eignen:

iif(compare($CURR_MAPSCALE,5000,LT), 15, 30);
(Wenn der Maßstab < 5000 ist, dann ist XOffset = 15, sonst 30)

theYOffset

Legt falls erforderlich einen Versatz in Karteneinheiten in Y-Richtung relativ zum Bezugspunkt fest. Dieser kann entweder konstant sein, aus einer Spalte bezogen werden oder via Script generiert werden.

yoffset.png

theScriptMakeImage

Legt fest, dass das in "theFile" oder "theTextField" angegebene Skript die Erstellung der Grafik vornimmt. In diesem Fall werden der Skriptengine eine Reihe Variablen übergeben. Dieser Wert beeinflusst das Leistungsverhalten. Weitere Informationen dazu finden Sie unter: http://www.webmapserver.de/HOWTO$DESIGNLAYER