Erstellen von Beschriftungsausdrücken
Sie können mit Beschriftungsausdrücken die Formatierung Ihrer Beschriftungen anpassen. Sie können Zeichen und Scripting-Funktionen einfügen und Formatierungs-Tags von ArcGIS in Beschriftungsausdrücken verwenden. Dabei handelt es sich um spezielle Zeichen, mit denen Sie das Aussehen eines Teiles oder der gesamten Beschriftung ändern können. Sie können zum Beispiel das Tag für die Fettformatierung verwenden, um die erste Zeile einer gestapelten, mehrzeiligen Beschriftung fett zu formatieren.
Ein Beschriftungsausdruck ist auf eine einzige Codezeile beschränkt, es sei denn, Sie aktivieren im Dialogfeld Beschriftungsausdruck das Kontrollkästchen Erweitert. Wenn Sie das Kontrollkästchen Erweitert aktivieren, kann eine Funktion mit mehrzeiliger Programmierlogik eingegeben werden.
Schritte:
- Klicken Sie auf die Schaltfläche Beschriftungs-Manager (auf der Werkzeugleiste Beschriftung).
- Klicken Sie in der Liste Beschriftungsklassen auf eine Beschriftungsklasse.
- Klicken Sie auf die Schaltfläche Ausdruck.
- Wählen Sie im Menü Parser eine Sprache aus.
- Geben Sie einen VBScript- oder JScript-Ausdruck ein. Geben Sie optional im Feld Ausdruck ArcGIS-Textformatierungs-Tags ein, um einem Teil des Beschriftungstextes ein bestimmtes Format zuzuweisen.
Wenn der Ausdruck mehrere Codezeilen umfasst, aktivieren Sie das Kontrollkästchen Erweitert und geben dann den Beschriftungsausdruck ein.
- Klicken Sie auf Überprüfen, um sicherzustellen, dass keine Syntaxfehler vorliegen.
- Klicken Sie in jedem der Dialogfelder auf OK.
Beispielausdrücke
Nachfolgend sind einige Beispiele für Beschriftungsausdrücke aufgeführt:
- Verbinden einer Zeichenkette mit einem Wert in einem Feld. Mit dem folgenden Ausdruck wird beispielsweise eine Beschriftung erstellt, bei der dem Wert des Feldes PARCELNO der Text "Parcel no:" vorangestellt wird:
VBScript
"Parcel no: " & [PARCELNO]
"Parcel no: " + [PARCELNO]
- Runden einer Dezimalzahl auf eine festgelegte Anzahl von Dezimalstellen. Mit dem folgenden Ausdruck wird beispielsweise ein Feld "Fläche" auf eine Dezimalstelle gerundet angezeigt:
VBScript
Round ([AREA], 1)
function FindLabel ( [AREA] ) { var ss; var num= parseFloat([AREA]); ss = num.toFixed(1); return (ss); }
- Konvertieren aller Textbeschriftungen in Groß- oder in Kleinbuchstaben. Mit dem folgenden Ausdruck wird beispielsweise das Feld "Name" in Kleinbuchstaben formatiert:
VBScript
LCase ([NAME])
[NAME].toLowerCase()
- Konvertieren der Textbeschriftungen in Groß- bzw. Kleinschreibung. Der folgende Ausdruck wandelt beispielsweise ein Namensfeld mit ausschließlich Großbuchstaben in die ordnungsgemäße Schreibung um:
VBScript
Function FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
function FindLabel ( [NAME] ) { var str = [NAME]; var iLen = String(str).length; var upper = (str.substring(0,1)).toUpperCase(); var lower = (str.substring(1, iLen)).toLowerCase() return upper + lower; }
- Erstellen eines gestapelten Textes. Mit dem folgenden Ausdruck wird beispielsweise eine Beschriftung mit dem Feld "Namen" und den zwei Adressenfeldern in jeweils unterschiedlichen Zeilen erstellt:
VBScript
"Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]
"Name: " + [NAME] + "\r" + [ADDRESS_1] + "\r" + [ADDRESS_2]
- Erstellen von gestapeltem Text basierend auf dem Text in einem Feld. In folgendem Ausdruck wird beispielsweise mit einem Komma angegeben, wo das Stapeln ausgeführt wird:
VBScript
Function FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
function FindLabel ( [LABELFIELD] ) { var r, re; var str = [LABELFIELD]; re = /,/g; r = str.replace(re, "\r"); return r; }
- Formatieren Ihrer Beschriftungen. Mit dem folgenden Ausdruck wird die Beschriftung beispielsweise als Währung angezeigt:
VBScript
"Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])
function FindLabel ( [MAXIMUM_OC], [RATE] ) { var ss; var num1 = parseFloat([MAXIMUM_OC]); var num2 = parseFloat([RATE]); var num3 = num1 * num2 ss = num3.toFixed(2); return ("$" + ss); }
- Angeben einer bedingten If-Else-Anweisung. Mit diesen Funktionen werden Städte mit ihrem Namen in einer großen, roten Schriftart beschriftet, wenn sie mindestens 250.000 Einwohner haben. Liegt die Anzahl der Einwohner unter 250.000, werden sie mit der Standardschriftart beschriftet:
VBScript
Function FindLabel ([NAME], [POPULATION]) if ([POPULATION] >= 250000) then FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else FindLabel = [NAME] end if End Function
function FindLabel ( [NAME], [POPULATION] ) { if ([POPULATION] >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
Hinweis:Um eine Teilmenge von Features basierend auf einem Feldwert zu beschriften, erstellen Sie die SQL-Abfrage in der Beschriftungsklasse und nicht mit einem Beschriftungsausdruck.
Weitere Informationen zur Referenz für Microsoft VBScript
Weitere Informationen zur Referenz für Microsoft JScript
(Diese Informationen befinden sich auf Webseiten der Microsoft Corporation, die von Microsoft erstellt und gepflegt werden. Esri kann keinerlei Garantie für die Verfügbarkeit dieser Webseiten geben und übernimmt für deren Inhalt keine Verantwortung.)
Textformatierungs-Tags in ArcGIS
Beschriftungen werden mit dem Symbol dargestellt, das im Beschriftungs-Manager oder auf der Registerkarte Beschriftungen des Dialogfeldes Layer-Eigenschaften angegeben wurde. Sie können das Erscheinungsbild dieses Symbols für bestimmte Teile des Ausdrucks ändern oder überschreiben, indem Sie ArcGIS-Tags für die Textformatierung als Textzeichenfolgen in den Ausdruck einfügen. Auf diese Weise können Sie Beschriftungen mit gemischter Formatierung erstellen, wenn z. B. ein Feld in einer Beschriftung unterstrichen werden soll.
Die verfügbaren Tags sind in der folgenden Tabelle aufgeführt. Zulässige Werte für RGB-Farben (Rot, Grün und Blau) liegen zwischen 0 und 255. Für CYMK-Farben (Zyan, Magenta, Gelb, Schwarz) sind Werte zwischen 0 und 100 zulässig. Ist ein Farbattribut nicht angegeben, wird ein Wert von 0 angenommen.
Schriftart |
"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>" "<FNT name='Arial' scale='200'>" & [LABELFIELD] & "</FNT>" |
Farbe |
"<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>" "<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>" |
Fett |
"<BOL>" & [LABELFIELD] & "</BOL>" |
Kursiv |
"<ITA>" & [LABELFIELD] & "</ITA>" |
Unterstrichen |
"<UND>" & [LABELFIELD] & "</UND>" |
Großbuchstaben |
"<ACP>" & [LABELFIELD] & "</ACP>" |
Kleinbuchstaben |
"<SCP>" & [LABELFIELD] & "</SCP>" |
Hochgestellt |
"<SUP>" & [LABELFIELD] & "</SUP>" |
Tiefgestellt |
"<SUB>" & [LABELFIELD] & "</SUB>" |
Zeichenabstand (0 % = normal) |
"<CHR spacing='25'>" & [LABELFIELD] & "</CHR>" |
Zeichenlaufweite (100 % = normal) |
"<CHR width='150'>" & [LABELFIELD] & "</CHR>" |
Wortabstand (100 % = normal) |
"<WRD spacing='150'>" & [LABELFIELD] & "</WRD>" |
Zeilenabstand (Punkte) |
"<LIN leading='12'>" & [LABELFIELD] & "</LIN>" |
Fett aufheben |
"<_BOL>" & [LABELFIELD] & "</_BOL>" |
Kursiv aufheben |
"<_ITA>" & [LABELFIELD] & "</_ITA>" |
Unterstrichen aufheben |
"<_UND>" & [LABELFIELD] & "</_UND>" |
Hochgestellt aufheben |
"<_SUP>" & [LABELFIELD] & "</_SUP>" |
Tiefgestellt aufheben |
"<_SUB>" & [LABELFIELD] & "</_SUB>" |
Tag-Syntax
Die folgenden Syntaxregeln finden für die Tags in Beschriftungsausdrücken Anwendung:
- Formatierungs-Tags müssen in doppelte Anführungszeichen eingeschlossen und mithilfe des &-Operators mit anderen Teilen des Ausdrucks verbunden werden:
"<BOL>" & [LABELFIELD] & "</BOL>"
"Current <BOL>status</BOL> of parcel: " & [LABELFIELD]
- Die ArcMap-Tags für die Textformatierung richten sich nach den XML-Syntaxregeln. Jedes Start-Tag muss durch ein End-Tag ergänzt werden. Es gibt verschachtelte Tags, wobei das innere Tag jedoch vor dem äußeren Tag geschlossen werden muss:
"<BOL><UND>" & [LABELFIELD] & "</UND></BOL>"
- Die Groß- und Kleinschreibung der Tag-Paare muss exakt gleich sein. Das heißt, <BOL>...</BOL> ist gültig, ebenso wie <bol>...</bol>. <Bol>...</bol> ist jedoch ungültig.
- In Beschriftungsausdrücken müssen Tag-Attribute entweder in einfache Anführungszeichen oder in zwei Paare doppelter Anführungszeichen eingeschlossen werden. Die folgenden Ausdrücke sind identisch:
"<FNT name=""Arial"" size=""18"">" & [LABELFIELD] & "</FNT>"
"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
- Die Sonderzeichen "&" und "<" sind im Text nicht gültig, wenn Sie Formatierungs-Tags verwenden. Verwenden Sie stattdessen die entsprechenden Zeichencodes & und <. In diesem Beschriftungsausdruck werden die Werte der Beschriftungsfelder innerhalb der Zeichen "< >" angegeben:
"<ITA><" & [LABELFIELD] & "></ITA>"
Function FindLabel ([LABELFIELD]) NewString = Replace([LABELFIELD],"&","&") FindLabel = "<ITA>" & NewString & "</ITA>" End Function
- In die Werte des für die Beschriftung von Layer-Features verwendeten Feldes können Formatierungs-Tags eingebunden sein, unabhängig davon, ob Sie mit einem Beschriftungsausdruck arbeiten oder nicht. Auf diese Weise können Sie das Format eines beliebigen Teiles eines bestimmten Wertes in einem Beschriftungsfeld ändern. Um Formatierungs-Tags einbinden zu können, muss es sich bei dem Beschriftungsfeld um ein Zeichenfolgen-Feld handeln. Die in Feldwerten verwendeten Tags und Tag-Attribute müssen nicht von Anführungszeichen eingeschlossen sein. Die folgenden Werte sind somit gültige Werte für ein Beschriftungsfeld:
<ITA>Rochester</ITA> <FNT size='18'>C</FNT>Colorado
Tipps zum Erstellen von Beschriftungsausdrücken
Beachten Sie beim Erstellen von Beschriftungsausdrücken die folgenden Tipps:
- Um die Gültigkeit von Ausdrücken mit Textformatierungs-Tags zu prüfen, klicken Sie auf die Schaltfläche Überprüfen. Sie können die Änderungen auch mit der Schaltfläche Übernehmen übernehmen und die Beschriftungen auf der Karte anzeigen. Sollten ungültige Formatierungs-Tags oder ungültige Syntax enthalten sein, werden diese Tags im Fenster Überprüfen und in den Kartenbeschriftungen in Klartext angezeigt.
- Textformatierungs-Tags können fast überall dort verwendet werden, wo Text auf der Karte oder um die Karte platziert wird.
Weitere Informationen zur Verwendung von Tags zur Textformatierung