ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Построение выражения надписи

  • Примеры выражений

Вы можете использовать выражения надписи, чтобы корректировать форматирование ваших надписей. Помимо вставки символов и функций скриптов, можно также использовать теги форматирования ArcGIS в выражениях надписей. Это специальные символы, которые можно использовать для изменения отображения частей ваших надписей. Например, с помощью тегов форматирования можно выделить первую строчку в надписи полужирным шрифтом.

Более подробно о форматировании надписей с помощью тегов форматирования

Выражение надписи ограничено одной строкой кода, если не отмечена опция Дополнительно в диалоговом окне Выражение надписи. Включите опцию Дополнительно, чтобы вводить функции, содержащие программную логику и разбиение на несколько строчек кода.

Значения поля автоматически вносятся в текстовые строки. Поэтому, чтобы использовать числовое значение в арифметической операции или при сопоставлении, необходимо снова вернуть им числовой тип данных.

Примечание:

Значения NULL не преобразуются в текстовые строки. Они будут восприниматься как выражения NULL.

В следующих примерах добавляются два целочисленных поля:

Python
int([FIELD1]) + int([FIELD2])
VBScript
cint([FIELD1]) + cint([FIELD2])
JScript
parseInt([FIELD1]) + parseInt([FIELD2])

Шаги:

  1. Нажмите кнопку Менеджер надписей Менеджер надписей на панели инструментов Надписи.
  2. Щелкните класс надписей в списке Классы надписей.
  3. Щёлкните кнопку Выражение.
  4. Внизу выберите язык синтаксического анализатора.
  5. Введите выражение Python, VBScript или JScript. Вы также можете создать выражение, дважды щелкнув поле, чтобы добавить его в выражение, или выбрав поле и щелкнув кнопку Добавить, чтобы добавить поле в конец выражения с отделением пробелом.

    Независимо от типа данных в источнике данных слоя имена полей заключаются в квадратные скобки [].

    При желании, введите теги форматирования текста ArcGIS в окно Выражение, чтобы отформатировать части ваших надписей.

    Если ваше выражение будет разбиваться на несколько строчек кода, отметьте Дополнительно и затем вводите выражение.

  6. Щёлкните Проверить, чтобы убедиться в отсутствии синтаксических ошибок.
  7. Щёлкните OK во всех диалоговых окнах.
Подсказка:

Как обычные, так и сложные выражения надписей, можно сохранить в виде файлов выражений (.lxp), который потом можно загрузить в другие слои или карты.

Примеры выражений

Вот некоторые примеры выражений надписей:

  • Присоединение строки к значению поля. Например, это выражение строит надписи, в которых перед значениями поля 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]);
    }
    
Примечание:

Для надписывания поднабора объектов на основании значения поля, создайте SQL-выражение для класса надписей, чтобы не ломать голову с выражениями надписей.

  • Справочник по языку Python
  • Справочник по языку Microsoft VBScript
  • Справочник по языку Microsoft JScript

(Эта информация находится на веб-страницах, не созданных, не поддерживаемых и не принадлежащих компании Esri. Esri не гарантирует доступность этих страниц и на несет ответственности за их содержание.)

Связанные разделы

  • Основные концепции надписывания
  • Об отображении надписей
  • Об определении текста надписей
  • Использование тегов форматирования текста

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация