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.
Weitere Informationen zum Formatieren von Beschriftungen mit Textformatierungs-Tags
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.
Feldwerte werden automatisch in Textzeichenfolgen umgewandelt. Wenn Sie also einen Zahlenwert in einer arithmetischen Operation verwenden möchten, oder wenn Sie einen Vergleich durchführen, müssen Sie ihn zurück in einen numerischen Datentyp umwandeln. In den folgenden Beispielen werden zwei Ganzzahlfelder hinzugefügt:
int([FIELD1]) + int([FIELD2])
cint([FIELD1]) + cint([FIELD2])
parseInt([FIELD1]) + parseInt([FIELD2])
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 Python-, VBScript- oder JScript-Ausdruck ein. Sie können auch einen Ausdruck erstellen, indem Sie auf das Feld doppelklicken, um es dem Ausdruck hinzuzufügen, oder indem Sie das Feld auswählen und auf die Schaltfläche Anhängen klicken, um das Feld an das Ende des Ausdrucks durch ein Leerzeichen getrennt anzufügen.
Felder werden in eckige Klammern [ ] eingeschlossen, unabhängig vom Datentyp für die Datenquelle des Layers.
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 Sie 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:Python
"Parcel no: " + [PARCELNO]
VBScript"Parcel no: " & [PARCELNO]
JScript"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:Python
round(float([AREA]), 1)
VBScriptRound ([AREA], 1)
JScriptfunction 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:Python
def FindLabel ( [NAME] ): S = [NAME] S = S.lower() return S
VBScriptLCase ([NAME])
JScript[NAME].toLowerCase()
- Konvertieren der Textbeschriftungen in Groß- bzw. Kleinschreibung. Der folgende Ausdruck wandelt beispielsweise ein Feld "Namen" mit ausschließlich Großbuchstaben in die ordnungsgemäße Schreibung um:Python
def FindLabel ( [NAME] ): S = [NAME] S = S.title() return S
VBScriptFunction FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
JScriptfunction 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:Python
"Name: " + [NAME] + '\n' + [ADDRESS_1] + '\n' + [ADDRESS_2]
VBScript"Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]
JScript"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:Python
def FindLabel ( [LABELFIELD] ): S = [LABELFIELD] S = S.replace(', ', '\n') return S
VBScriptFunction FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
JScriptfunction 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:Python
def FindLabel ( [MAXIMUM_OC], [RATE] ): import locale locale.setlocale(locale.LC_ALL, '') S = locale.currency(float([MAXIMUM_OC]) * float([RATE])) return S
VBScript"Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])
JScriptfunction 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:Python
def FindLabel ( [NAME], [POPULATION] ): if long([POPULATION]) >= 250000: return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else: return [NAME]
VBScriptFunction FindLabel ([NAME], [POPULATION]) if (cLng([POPULATION]) >= 250000) then FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else FindLabel = [NAME] end if End Function
JScriptfunction FindLabel ( [NAME], [POPULATION] ) { if (parseFloat([POPULATION]) >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
- Python-Sprachreferenz (auf Englisch)
- Microsoft-Referenz zur VBScript-Sprache (auf Englisch)
- Microsoft-Referenz zur JScript-Sprache (auf Englisch)
(Diese Informationen befinden sich auf Webseiten anderer Eigentümer, die nicht von Esri erstellt und gepflegt werden. Esri kann keinerlei Garantie für die Verfügbarkeit dieser Webseiten geben und übernimmt für deren Inhalt keine Verantwortung.)