Вы можете использовать выражения надписи, чтобы корректировать форматирование ваших надписей. Помимо вставки символов и функций скриптов, можно также использовать теги форматирования ArcGIS в выражениях надписей. Это специальные символы, которые можно использовать для изменения отображения частей ваших надписей. Например, с помощью тегов форматирования можно выделить первую строчку в надписи полужирным шрифтом.
Более подробно о форматировании надписей с помощью тегов форматирования
Выражение надписи ограничено одной строкой кода, если не отмечена опция Дополнительно в диалоговом окне Выражение надписи. Включите опцию Дополнительно, чтобы вводить функции, содержащие программную логику и разбиение на несколько строчек кода.
Значения поля автоматически вносятся в текстовые строки. Поэтому, чтобы использовать числовое значение в арифметической операции или при сопоставлении, необходимо снова вернуть им числовой тип данных.
В следующих примерах добавляются два целочисленных поля:
Python
int([FIELD1]) + int([FIELD2])
VBScript
cint([FIELD1]) + cint([FIELD2])
JScript
parseInt([FIELD1]) + parseInt([FIELD2])
Шаги:
- Нажмите кнопку Менеджер надписей на панели инструментов Надписи.
- Щелкните класс надписей в списке Классы надписей.
- Щёлкните кнопку Выражение.
- Внизу выберите язык синтаксического анализатора.
- Введите выражение Python, VBScript или JScript. Вы также можете создать выражение, дважды щелкнув поле, чтобы добавить его в выражение, или выбрав поле и щелкнув кнопку Добавить, чтобы добавить поле в конец выражения с отделением пробелом.
Независимо от типа данных в источнике данных слоя имена полей заключаются в квадратные скобки [].
При желании, введите теги форматирования текста ArcGIS в окно Выражение, чтобы отформатировать части ваших надписей.
Если ваше выражение будет разбиваться на несколько строчек кода, отметьте Дополнительно и затем вводите выражение.
- Щёлкните Проверить, чтобы убедиться в отсутствии синтаксических ошибок.
- Щёлкните OK во всех диалоговых окнах.
Примеры выражений
Вот некоторые примеры выражений надписей:
- Присоединение строки к значению поля. Например, это выражение строит надписи, в которых перед значениями поля PARCELNO написано: "Parcel no:" (номер участка):
Python
"Parcel no: " + [PARCELNO]
VBScript
"Parcel no: " & [PARCELNO]
JScript
"Parcel no: " + [PARCELNO]
- Округление десятичного числа до определенного количества знаков. Например, это выражение показывает значения поля Area округленными до одного знака после запятой:
Python
round(float([AREA]), 1)
VBScript
Round ([AREA], 1)
JScript
function FindLabel ( [AREA] ) { var ss; var num= parseFloat([AREA]); ss = num.toFixed(1); return (ss); }
- Конвертация текстовых надписей в нижний или верхний регистр. Например, это выражение показывает значения поля Name прописными буквами:
Python
def FindLabel ( [NAME] ): S = [NAME] S = S.lower() return S
VBScript
LCase ([NAME])
JScript
[NAME].toLowerCase()
- Конвертация текстовых надписей в правильный регистр. Например, это выражение берет значения из поля Name, где всё записано заглавными буквами, и отображает в правильном регистре:
Python
def FindLabel ( [NAME] ): S = [NAME] S = S.title() return S
VBScript
Function FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
JScript
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; }
- Создание текста в несколько строк. Например, это выражение создаёт надпись из поля Name и двух полей адреса, разнесенных по разным строчкам:
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]
- Создание текста в несколько строк на основании текста из одного поля. Например, это выражение разбивает текст по строчкам в местах, где стоят запятые:
Python
def FindLabel ( [LABELFIELD] ): S = [LABELFIELD] S = S.replace(', ', '\n') return S
VBScript
Function FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
JScript
function FindLabel ( [LABELFIELD] ) { var r, re; var str = [LABELFIELD]; re = /,/g; r = str.replace(re, "\r"); return r; }
- Форматирование надписей. Например, это выражение форматирует надпись как денежную:
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])
JScript
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); }
- Указание выражения с условием (if else). Эти функции надписывают города большими красными буквами, если население больше 250 тыс. человек, или шрифтом по умолчанию – если меньше.
Python
def FindLabel ( [NAME], [POPULATION] ): if long([POPULATION]) >= 250000: return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else: return [NAME]
VBScript
Function 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
JScript
function FindLabel ( [NAME], [POPULATION] ) { if (parseFloat([POPULATION]) >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
- Справочник по языку Python
- Справочник по языку Microsoft VBScript
- Справочник по языку Microsoft JScript
(Эта информация находится на веб-страницах, не созданных, не поддерживаемых и не принадлежащих компании Esri. Esri не гарантирует доступность этих страниц и на несет ответственности за их содержание.)