Настройка стиля слоя с помощью Arcade

Вы создадите выражение Arcade и используете его для оформления стиля слоя на карте. Выражение Arcade будет вычислять ежегодное потребление электроэнергии на душу населения. Сначала вы рассчитаете ежегодное потребление электроэнергии в каждой стране, и поделите полученное значение на общую численность населения. Этот расчет важен для соизмеримого сопоставления потребления электроэнергии, принимая во внимание широкий диапазон численности населения по странам мира. Затем вы оформите стиль слоя со странами мира, используя итоговое значение потребления энергии на душу населения в год.

Прежде всего, вы добавите нужные слои на карту и выберете другую базовую карту.

Добавление слоев и изменение базовой карты

Сначала вы создадите новую карту в Map Viewer. Затем вы добавите на новую карту два слоя - Global Power Plants и World Countries Electricity Consumption - и поменяете базовую карту.

Примечание:

Map Viewer является инструментом следующего поколения для создания карт в ArcGIS Online. Он призван вдохновлять на эксперименты и творчество, предлагая при этом дополнительные возможности для основных рабочих процессов картографирования.

  1. Войдите под учётной записью организации ArcGIS.
    Примечание:

    Если у вас нет учетной записи организации, см. варианты доступа к программному обеспечению.

  2. На ленте щелкните Карта.

    Кнопка Карта

    Примечание:

    В зависимости от настроек организации и пользователя при открытии Map Viewer Classic. ArcGIS Online может предложить два вьюера для просмотра, использования и создания карт. Дополнительные сведения о доступных вьюерах карт и возможности их использования см. в этом FAQ.

    В этом руководстве используется Map Viewer.

  3. Если необходимо, во всплывающем окне щелкните Открыть в Map Viewer или щелкните на ленте Открыть в Map Viewer.

    Откроется Map Viewer.

    Map Viewer

    Теперь вы добавите первый слой Global Power Plant на карту.

  4. На панели Слои щёлкните Добавить.

    Кнопка Добавить

  5. Щёлкните Мои ресурсы и выберите ArcGIS Online.

    Опции ArcGIS Online

  6. В поле поиска введите global power plants owner:Learn_ArcGIS.

    Слой Global Power Plants появится в результатах поиска.

  7. Для результата поиска слоя Global Power Plants щелкните кнопку Добавить.

    Поиск global power plants.

    Слой появится на карте.

    Слой Global power plants

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

  8. В окне поиска скопируйте и вставьте следующий текст: electricity consumption owner:Learn_ArcGIS.
  9. На слое World Countries Electricity Consumption в результатах поиска нажмите Добавить.

    Слой появится на карте.

    Добавьте слой World Countries Electricity Consumption.

    Слой содержит данные о численности населения и потреблении электроэнергии по всем странам мира.

    Слой World Countries Electricity Consumption, показывающий электростанции

    Этот слой размещен выше слоя Global Power Plants и частично перекрывает его, поэтому вы поменяете порядок расположения слоев.

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

    Кнопка Назад

  11. На панели Слои перетащите слой World Countries Electricity Consumption под слой Global Power Plants.

    Символы электростанций теперь отображаются поверх слоя со странами.

    Отображены оба слоя

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

  12. На панели Слои убедитесь, что выбран слой Global Power Plants.
  13. На панели инструментов Настройки (светлая), щелкните Агрегирование.

    Кнопка Агрегирование

  14. На панели Агрегирование щелкните кнопку Включить агрегирование.

    Переключатель Включить кластеризацию

    Кластеризация включена по умолчанию.

  15. Для Кластеризации щелкните Опции.

    Опции кластеризации

    Появляется панель Кластеризация.

  16. На панели Кластеризация для Радиуса кластеризации перетащите бегунок ближе к Низкий. Для Диапазона размера переместите бегунок влево.

    Радиус кластера и Диапазон размеров

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

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

  17. Щелкните Назад и закройте панель Агрегирование.

    Закройте панель Агрегирование.

  18. На панели Содержание (темной) щелкните Базовая карта. На панели Базовая карта выберите Тёмно-серое полотно.

    Тёмно-серое полотно.

    Базовая карта обновится на карте.

    Тёмно-серое полотно, базовая карта

  19. Закройте панель Базовая карта.

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

  20. Нажмите на кнопку Свернуть на панели инструментов Содержание.

    Сверните панель Содержание.

    Далее вы сохраните карту.

  21. На свернутой панели инструментов Содержание щелкните Сохранить и открыть и выберите Сохранить как.

    Сохранить как в меню Сохранить и открыть

  22. В окне Сохранить карту введите следующую информацию:
    • Для Заголовка введите Производство и потребление электроэнергии в мире и добавьте свои инициалы.
    • Укажите Теги: потребление электроэнергии, электростанции, нажимайте Enter после каждого тега.
    • В Описании укажите: Карта ведущих электростанций мира, отображенных по типу вырабатываемой электроэнергии.

    Окно Сохранить карту

  23. Щелкните Сохранить.

Изучение данных и редактор выражения Arcade

Далее, вы изучите редактор выражений Arcade и используете его для оформления слоя World Countries Electricity Consumption. Ваша цель - легко сравнить ежегодное потребление электроэнергии в каждой стране. Для ее выполнения вы построите выражение Arcade, которое рассчитывает ежегодное потребление электроэнергии на душу населения путем деления показателя ежегодного потребления электроэнергии (в киловатт-часах) на общую численность населения. Это сделает возможным провести соизмеримое сопоставление потребления электроэнергии по странам, принимая во внимание широкий диапазон численности населения.

Примечание:

Этот тип расчета называется нормализацией: для каждой страны вы нормализуете потребление электроэнергии по общей численности населения.

Перед началом создания выражения Arcade вы посмотрите атрибутивную таблицу слоя.

  1. На панели инструментов Содержание щелкните кнопку Слои.

    Кнопка Слои

  2. На панели Слои для слоя World Countries Electricity Consumption нажмите кнопку Опции и кликните Показать таблицу.

    Показать опцию меню таблицы

    Появится таблица атрибутов.

    Примечание:

    Для освобождения места на экране, вы можете свернуть панель Свойства.

    Таблица атрибутов

    Таблица включает поле COUNTRY, в котором указаны названия стран, поле Annual Electricity Consumption, со значениями в киловатт-часах (кВт-ч) и поле Pop, в котором указана численность населения каждой страны. Эти атрибуты вы будете использовать в выражении Arcade.

    Примечание:

    Киловатт-часы это общепринятая единица измерения потребления электроэнергии за определенное время. Если вы внимательно посмотрите на свой ежемесячный счет за электроэнергию, ваше ежемесячное потребление, вероятно, будет отображаться в киловатт-часах.

    Теперь вы узнаете, как использовать Arcade. Это портативный, легкий и защищенный язык выражений, написанный для использования в ArcGIS. Как и другие языки создания выражений, он может выполнять математические операции, обращаться с текстом и оценивать логические утверждения. Arcade был специально разработан для создания пользовательского оформления и надписывания объектов на лету в ArcGIS. Он позволяет пользователям оперировать существующими данными и получать новые идеи посредством разработки, совместного использования и выполнения настраиваемых выражений в ArcGIS Pro, ArcGIS Runtime, ArcGIS Online, ArcGIS Enterprise и ArcGIS API for JavaScript.

    В Map Viewer, Arcade полезен при настройке всплывающих окон и надписей, и при оформлении слоя. Вы можете создать и применить выражение Arcade с помощью редактора выражений Arcade. Теперь вы откроете и изучите редактор выражений. Поскольку ваша цель - настроить оформление слоя World Countries Electricity Consumption, вы откроете редактор выражения на панели Стили этого слоя.

  3. На панели Слои убедитесь, что выбран слой World Countries Electricity Consumption, а на панели инструментов Настройки щелкните Стили.

    Стили на панели инструментов Настройки

  4. На панели Стили в разделе Выбрать атрибуты щелкните Выражение.

    Панель Стили

    Появится окно редактора выражений Arcade.

  5. Щелкните значок Развернуть, чтобы увидеть боковые закладки.

    Кнопка Развернуть

    Посмотрите разные разделы окна редактора. Окно выражения - это то место, где вы создаете выражение. На вкладках Переменные профиля и Функции вы найдете элементы, которые будете использовать в выражении. Вкладка Справка открывает страницу справки Arcade.

    Вкладки окна выражения

  6. Просмотрите вкладку Переменные профиля.

    На вкладке представлен список преднастроенных переменных, включая поля атрибутов и геометрию для объектов слоя.

  7. Перейдите на вкладку Функции.

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

  8. Щелкните вкладку Справка.

    Эта вкладка связана с документацией Arcade.

  9. Нажмите кнопку Запустить.

    Кнопка Запустить

    Вкладки Выходных данные, Консоль и Журнал откроются с результатом null. Как только вы создали выражение, можно нажать кнопку Запустить, чтобы протестировать выходное значение выражения. На данный момент вы не написали никакого кода Arcade, поэтому вкладки Выходные данные и Журнал ничего не содержат.

Создание выражения Arcade для вычисления потребление электроэнергии на душу населения

Сейчас вы создадите выражение Arcade и используете его для оформления слоя World Countries Electricity Consumption. Сначала вы определите переменную для доступа к атрибуту поля Annual Electricity Consumption (KwH).

  1. В окне выражения, в строке 1, введите (или скопируйте и вставьте) следующий текст: var annualConsumptionKwh = .

    Объявление первой переменной

    AnnualConsumptionKwh - имя новой переменной. Использование var <variableName> активирует переменные в памяти для последующего использования в выражении. Вы укажете значение переменной в следующем шаге.

  2. Щелкните вкладку Переменные профиля. На панели Переменные профиля щелкните стрелку рядом с $feature.

    Переменные профиля

  3. В разделе Значения щелкните переменную $feature.Annual_Electricity_Consumption_.

    Вставьте первое атрибутивное поле.

    Строка копируется в окно выражения, завершая вашу первую строку кода.

    Примечание:

    Annual_Electricity_Consumption_ - это имя атрибута, а Annual Electricity Consumption - это псевдоним, более удобный для пользователя способ обозначения атрибута.

  4. В окне выражения нажмите Enter, чтобы перейти на следующую строку выражения.

    Первая полная строка кода

    Любая дальнейшая ссылка на переменную annualConsumptionKwh приведет к доступу к значению атрибута Annual Electricity Consumption (KwH) для каждого объекта в слое (в данном случае это все страны мира).

    Теперь вы протестируете первую строку вашего выражения. Удобный способ протестировать переменную - попросить Arcade вернуть её значение. Вы можете сделать это, используя оператор return.

  5. В окне Выражение введите return annualConsumptionKwh и нажмите клавишу Enter.

    Добавьте первый оператор return.

  6. Нажмите кнопку Запустить.

    На вкладке Выходные данные появится значение 157200000, а типом данных является Номер.

    Первый результат теста

    Примечание:

    Чтобы упростить тестирование выражений, редактор выражения Arcade использует первый объект слоя (упорядоченного по ID объекта) для заполнения атрибутов примерами значений. Первым объектом слоя World Countries Electricity Consumption является Американское Самоа с годовым потреблением электроэнергии 157 200 000 кВт-ч и населением 46366 человек.

    Результатом, возвращенным для вашего выражения, является годовое потребление электроэнергии для Американского Самоа: 157 200 00 кВт-ч. Это то самое значение, которое вы ожидали, таким образом, ваш код работает правильно.

    Затем вы введете переменную для доступа к полю население.

  7. В окне выражения в конце первой строки кода нажмите Enter, чтобы добавить новую строку. Введите var population =.
  8. При необходимости на вкладке Переменные профиля щелкните стрелку рядом с вкладкой $feature. В Значениях выберите $feature.POP, чтобы добавить в выражение значение атрибута населения.

    Теперь вы используете оператор return, чтобы протестировать новую переменную.

  9. В строке return замените annualConsumptionKwh на population.

    Создание переменной численности населения

    Примечание:

    В предыдущем атрибуте использовалось обозначение ["field"], потому что он содержал символы подчеркивания. Поле POP не содержит символы подчеркивания, поэтому Arcade использует более простое обозначение. Преимущество при добавлении атрибута через вкладку Переменные профиля вместо ручного ввода в том, что для вас подбирается корректный формат. Также это предотвращает возможность появления орфографической ошибки.

  10. Щелкните Запустить.

    В Выходных данных находится значение 46366, что действительно соответствует численности населения Американского Самоа. Поведение кода продолжает соответствовать ожидаемому.

    Следующий шаг - вычислить потребление электроэнергии на душу населения. Для этого вы воспользуетесь значениями, хранящимися в двух переменных, и разделите годовое потребление электроэнергии на численность населения. Вы сохраните результат в третьей переменной, которая называется consumptionPerCapita.

  11. В окне выражения нажмите Enter, чтобы добавить новую строку перед строкой return population. Введите var consumptionPerCapita = annualConsumptionKwh / population.
  12. В строке return замените population на consumptionPerCapita.

    Создайте переменную consumptionPerCapita.

  13. Щелкните Запустить.

    В Выходных данных указано 3390.415390587931, что действительно является результатом деления 157200000 на 46,366.

    Чтобы протестировать большее разнообразие случаев, вы можете переназначить переменную population номером литерала.

  14. В окне выражения нажмите Enter, чтобы добавить новую строку после строки var population = $feature.POP. Введите population = 40000.

    Объявление переменной со значением литерала

  15. Щелкните Запустить.

    Результат обновился на 3930, что является результатом деления 157200000 на 40000.

  16. Точно так же вы можете проверить свое выражение с разными значениями для полей годового потребления электроэнергии и численности населения.
  17. Удалите строку кода population = 40000.
    Примечание:

    Оператор return используется не только для тестирования - он показывает, как конечный результат выражения будет доступен для использования на карте. Например, теперь, когда в выражении выдается окончательный результат, вы сможете использовать его для оформления слоя стран.

    Готовое выражение показано ниже.

    
    // Set variables
    var annualConsumptionKwh = $feature["Annual_Electricity_Consumption_"]
    var population = $feature.POP
    
    // Calculate the electricity consumption per capita
    var consumptionPerCapita = annualConsumptionKwh / population
    
    // Return the consumption per capita
    return consumptionPerCapita

    Чтобы сделать ваш код более читабельным, добавлены комментарии.

    Примечание:

    Чтобы сделать ваш код более читабельным и легким в поддержке в будущем, рекомендуется добавлять комментарии, обозначенные значком // в начале строки. Комментарии игнорируются Arcade и предназначены только для людей, которые будут читать код.

    Теперь вы зададите имя для этого выражения. Крайне важно дать понятное имя для выражения, т.к., по сути, оно будет применяться как имя нового поля в слое. Оно будет использоваться в легенде карты, а также поможет идентифицировать выражение позже, когда вы на него ссылаетесь или если его нужно отредактировать.

  18. Щелкните кнопку Редактирование рядом с Новое выражение.

    Кнопка редактирования нового выражения

    Примечание:

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

  19. В текстовом поле Новое выражение введите Потребление электроэнергии на душу населения (кВт-ч) и щелкните вне текстового поля.

    Переименуйте название выражения

  20. Щелкните Готово.

    Редактор Arcade закроется, и выражение будет добавлено в список атрибутов, которые можно использовать для оформления стиля слоя World Countries Electricity Consumption.

  21. На панели инструментов Содержание щелкните Сохранить и открыть и выберите Сохранить.

    При сохранении карты будет сохранено все, что вы сделали на карте, включая любые созданные вами выражения.

Настройка стиля слоя

Теперь вы готовы оформить слой World Countries Electricity Consumption, используя только что созданное выражение Arcade.

  1. На панели Стиль посмотрите текущие настройки.

    На панели Стили новое выражение Потребление электроэнергии на душу населения (кВт-ч) было автоматически применено к символам слоя World Countries Electricity Consumption. По умолчанию стиль отображения — Числа и количества (цвет), и именно так вы в конечном итоге будете стилизовать слой. Однако вы измените стиль на Числа и количества (размер), чтобы увидеть разницу.

  2. В разделе Выбор стиля щелкните Числа и количества (размер)

    Стиль по умолчанию для нового выражения

    Поскольку слой плохо виден, вы временно отключите слой Global Power Plants.

  3. На панели Слои нажмите на кнопку для отключения видимости слоя Global Power Plants.

    Выключить слой

    Потребление электроэнергии на душу населения в каждой стране представлено точечными символами разного размера.

    Карта с символами Числа и количества (размер)

    Примечание:

    Поскольку в каждой стране разные значения общего потребления электроэнергии и численности населения, результат на душу населения для каждой страны разный, даже если выражение Arcade одинаковое. Это то, что делает Arcade таким мощным - он может брать значения полей конкретных объектов, чтобы "на лету" возвращать новые значения для каждого из них. Еще одна особенность Arcade, которая здесь продемонстрирована, состоит в том, что вам не нужно быть владельцем исходных слоев с данными для генерации новой производной информации.

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

  4. На панели Стили выберите стиль отображения Числа и количества (цвет).

    Выберите новый стиль отображения.

    Интуитивно понятная, удобная для дальтоников цветовая шкала, подходящая для темного фона, автоматически выбирается для стиля Числа и количества. Страны с низким потреблением электроэнергии на душу населения отображаются темно-синим цветом, а страны с высоким уровнем потребления электроэнергии на душу населения - ярко-бирюзовым.

    Карта с символами Числа и количества (цвет)

    Примечание:

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

  5. Щёлкните Готово, чтобы закрыть панель Стили.
  6. На панели Слои снова включите слой Global Power Plants.

    Для обоих слоев настроены стили

    С новым стилем оформления теперь можно отображать оба слоя одновременно.

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

  7. На панели Слои убедитесь, что выбран слой World Countries Electricity Consumption, и на панели инструментов Настройки щелкните Всплывающие окна.

    Всплывающие окна на панели инструментов Настройки

  8. На панели Всплывающие окна отключите Включить всплывающие окна и закройте панель Всплывающие окна.

    Отключить всплывающие окна.

  9. Сохраните карту.

    Теперь ваша карта имеет визуально интуитивно понятный стиль, который показывает модели потребления электроэнергии на душу населения и производства электроэнергии по всему миру.

  10. Просмотрите содержимое карты.

    Оформление итоговой карты

    Вы можете бегло сравнить свою страну с другими. Уровень потребления электроэнергии на душу населения выше в промышленно-развитых странах Западной Европы и Северной Америки, а также в большинстве странах Персидского залива, производящих электроэнергию. Вы можете увидеть, что страны с более высоким потреблением электроэнергии на душу населения, как правило, имеют более высокую концентрацию электростанций, что логично. В развивающихся странах меньше электростанций и меньше потребление электроэнергии на душу населения.

Вы создали карту и отобразили электростанции с помощью эффекта кластеризации. Затем вы использовали выражение Arcade для отображения показателя годового потребления электроэнергии на душу населения во всем мире.


Настройка всплывающего окна с помощью Arcade

Ранее вы познакомились с Arcade и использовали выражение Arcade для обозначения слоя стран мира. Теперь вы будете использовать выражение Arcade для отображения данных слоя электростанций в информационном всплывающем окне. Это позволит вам лучше разобраться в производстве электроэнергии на электростанциях.

Изучение атрибутов ведущих мировых электростанций и всплывающих окон

Сначала вы изучите атрибуты ведущих мировых электростанций и посмотрите всплывающие окна этого слоя.

В слое Ведущие мировые электростанции есть атрибут, который дает расчетную годовую выработку электроэнергии для каждой электростанции, выраженную в гигаватт-часах (ГВт-ч). Имя этого атрибута - estimated_generation_gwh. Это полезно, но вы хотели бы выразить величину выработки электроэнергии как нечто более понятное для широкой публики: количество 60-ваттных лампочек, которые электростанция может снабжать энергией в течение года. Для того, чтобы выполнить такое преобразование, вы будете использовать выражение Arcade, и новая величина будет отображаться в предложении во всплывающем окне слоя. Поскольку на некоторых электростанциях отсутствует значение атрибута estimated_generation_gwh, вам также потребуется обработать эти отсутствующие значения в выражении Arcade.

Во-первых, вы изучите таблицу атрибутов для слоя электростанций.

  1. При необходимости войдите в ArcGIS Online. На панели инструментов щелкните Ресурсы и перейдите к карте Мировое производство и потребление электроэнергии, которую вы создали в модуле 1.

    Кнопка Ресурсы на главной странице

  2. Щелкните меню опций рядом с Мировое производство и потребление электроэнергии и выберите Открыть во вьюере карт.

    Опция Открыть в Map Viewer

  3. На панели Слои для слоя электростанций Global Power Plants щелкните кнопку Опции и выберите Показать таблицу.
  4. Ознакомьтесь с полями таблицы атрибутов Ведущие мировые электростанции. Используйте горизонтальную полосу прокрутки, чтобы видеть все поля.

    Таблица атрибутов Ведущие мировые электростанции

    Среди атрибутов этого слоя обратите внимание на следующие:

    • В поле country_long указывается название страны, в которой расположена электростанция.
    • Поле name содержит имя электростанции.
    • В поле fuel указывается тип электростанции.
    Примечание:

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

  5. Прокрутите до последнего столбца таблицы, estimated_generation_gwh.

    Как уже упоминалось, это поле содержит расчетную годовую выработку электроэнергии для электростанции, выраженную в гигаватт-часах (ГВт-ч). Гигаватт-час - это электроэнергия, которая в миллион раз больше, чем киловатт-час.

  6. Закройте таблицу атрибутов Ведущие мировые электростанции.

    Затем вы исследуете всплывающие окна для этого слоя.

  7. На карте приблизьтесь к интересующей вас области.
    Примечание:

    Поскольку в слое Ведущие мировые электростанции вы включили кластеризацию, вам нужно будет изменять масштаб карты до тех пор, пока кластеры не распадутся на отдельные объекты, чтобы можно было увидеть всплывающие окна этих отдельных объектов.

  8. На карте выберите объект Ведущие мировые электростанции, чтобы просмотреть исходное всплывающее окно для данного слоя.

    Всплывающее окно по умолчанию

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

Преобразование единиц выработки электроэнергии с помощью Arcade.

Теперь вы откроете редактор выражений Arcade, чтобы создать новое выражение. Поскольку ваша цель - настроить всплывающее окно, вы откроете редактор выражений на панели настройки Всплывающие окна.

  1. На панели Слои убедитесь, что выбран слой Global Power Plants.

    Выбран слой Ведущие мировые электростанции

  2. Если необходимо, на панели инструментов Настройки (светлая) щелкните Всплывающие окна. На панели Всплывающие окна нажмите Атрибутивные выражения.

    Панель Всплывающие окна

    Сейчас вы создадите новое выражение Arcade.

  3. Щёлкните Добавить выражение, чтобы открыть редактор выражений Arcade.

    Кнопка Добавить выражение

    Появится окно редактора.

    Примечание:

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

    Вы зададите имя для этого выражения.

  4. Измените заголовок выражения на Расчетная годовая выработка в лампочках.

    Кнопка Редактировать

    Сейчас вы начнете создание выражения Arcade. Во-первых, вы создадите переменную,yearLightbulbPower, которая содержит количество киловатт-часов электроэнергии, необходимой для питания 60-ваттной лампочки в течение одного года.

    60-ваттная лампа накаливания потребляет 60 ватт-часов или 0,06 киловатт-часов электроэнергии за каждый час ее работы. Чтобы найти количество киловатт-часов электроэнергии, необходимое для питания 60-ваттной лампочки в течение года, вы умножите 0,06 киловатт-часа на 24 часа, а затем на 365 дней.

  5. В первой строке окна выражения введите (или скопируйте и вставьте) var yearLightbulbPower = 0.06 * 24 * 365.

    Далеее вы добавите оператор return, чтобы протестировать переменную.

  6. Нажмите Enter и добавьте return yearLightbulbPower.

    Две первые строки нового выражения

    Далее вы запустите свой код.

  7. Нажмите кнопку Запустить.

    На вкладке Выходные данные выводится значение 525,6. Это действительно является результатом произведения 0.06 на 24 на 365 и, таким образом, ваш код работает правильно.

    Результат переменной yearLightbulbPower

    Затем вы создадите переменную, содержащую имя электростанции, используя поле имя из слоя Ведущие мировые электростанции.

  8. В окне выражения добавьте новую строку перед выражением return и введите var plantName =.

    Вторая переменная

  9. На панели Переменные профиля щелкните стрелку рядом с $feature.

    Стрелка, раскрывающая элемент объекта

    Появится список атрибутов для слоя электростанции.

    Примечание:

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

  10. Под списком Значения прокрутите вниз и щелкните $feature.name, чтобы завершить свою строку кода.
  11. В выражении return замените yearLightbulbPower на plantName, чтобы проверить вторую переменную.

    Возвращает код названия станции

  12. Нажмите кнопку Запустить.

    В таблице Выходные данные находится значение Kajaki Hydroelectric Power Plant Afghanistan. Это - имя первой электростанции, указанной в таблице атрибутов, которая по умолчанию была назначена в качестве образца данных.

    На следующем шаге вы создадите переменную, annualGenerationGwh, содержащую значение атрибута годовой выработки электроэнергии.

  13. В окне выражения добавьте новую строку перед выражением return и введите var annualGenerationGwh =.
  14. На панели Переменные профиля щелкните $feature.estimated_generation_gwh.
  15. В выражении return замените plantName на annualGenerationGwh, чтобы проверить самую последнюю переменную.

    Создайте переменную annualGenerationGwh.

  16. Нажмите кнопку Запустить.

    На вкладке Выходные данные значение отсутствует, оно указано как Null. Этот результат не является ожидаемым, поэтому вы далее его изучите.

    Результат Null

    Вы проверите, действительно ли текущее значение для этого атрибута пустое. Функция Arcade для проверки, является ли переменная "is empty" переменной IsEmpty. Функция IsEmtpy возвращает true, если заданное значение null или пустой текст (т.е. ''). Она возвращает false во всех других случаях, включая пустые массивы и словари.

  17. В окне выражения, для var annualGenerationGwh = $feature["estimated_generation_gwh"], замените $feature["estimated_generation_gwh"] на IsEmpty($feature["estimated_generation_gwh"]).

    Проверка пустого значения

  18. Щелкните Запустить.

    На вкладке Выходные данные значение отображается как Булево и имеет значение True.

    Булево значение для записи равно true

    Это означает, что гидроэлектростанция Каяки в Афганистане не имеет значения для атрибута estimated_generation_gwh. Поэтому проверка ранее дала пустой или нулевой результат.

    Примечание:

    Вам нужно будет позаботиться об этих особых случаях, когда в выражении Arcade пропущены данные. Однако вы сделаете это позднее. А пока вы выполните код для обычного случая, когда значение атрибута указано.

    Чтобы продолжить создание выражения Arcade, вы вручную установите в качестве примера значение 10 ГВт-ч.

  19. В окне выражения для var annualGenerationGwh = IsEmpty($feature["estimated_generation_gwh"]) удалите функцию IsEmpty, а также начальную и конечную скобки.

    IsEmpty удалено

    Выражение вернется к предыдущему формату.

  20. Нажмите Enter, чтобы добавить новую строку после строки var annualGenerationGwh = $feature["estimated_generation_gwh"]. Введите annualGenerationGwh = 10.
  21. Снова щелкните кнопку Запустить.

    На вкладке Выходные данные значение теперь равно 10, как и ожидалось, а тип данных является Числовым.

    Результат проверки равен 10.

    Затем, в коде Arcade вам будет нужно рассчитать годовую выработку электроэнергии в 60-ваттных лампочках на основе значения переменной annualGenerationGwh. Первый шаг состоит в том, чтобы преобразовать это значение из киловатт-часов (кВт*ч) в гигаватт-часы (ГВт*ч) и поместить полученный результат в новую переменную. В одном ГВт*ч. содержится один миллион кВт*ч., поэтому, чтобы перевести ГВт*ч. в кВт*ч. переменную annualGenerationGwh надо умножить на один миллион.

  22. Добавьте новую строку над выражением return введите var annualGenerationKwh = annualGenerationGwh * 1000000.
  23. В выражении return замените annualGenerationGwh на annualGenerationKwh.

    Создайте переменную annualGenerationKwh.

  24. Щелкните Запустить для проверки выражения.

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

    В этом разделе вы приступили к созданию второго выражения Arcade. Вы определили несколько переменных и перевели годовое значение выработки электроэнергии из ГВт*ч. в кВт*ч.

Выполнение вычислений и форматирование текста с помощью Arcade

Сейчас вы выполните основные вычисления в выражении Arcade. Затем вы отобразите результат в формате текста.

Во-первых, вы рассчитаете количество 60-ваттных лампочек, которые данная электростанция может питать энергией в течение года, разделив годовую выработку электроэнергии в кВтч (annualGenerationGwh) на количество кВтч, необходимое для питания одной 60-ваттной лампочки в течение года (yearLightbulbPower).

Примечание:

Не забывайте, что переменная yearLightbulbPower содержит результат произведения 0,06 * 24 * 365, который равен 525,6.

  1. Добавьте новую строку над выражением return введите var annualGenInLightbulbs = annualGenerationKwh / yearLightbulbPower.
  2. В выражении return замените annualGenerationKwh на annualGenInLightbulbs.

    Создайте переменную annualGenInLightbulbs.

  3. Щелкните Запустить для проверки выражения.

    Значение Результата равно 19025.87519025875, что действительно является результатом деления 10000000 на 525.6. А это около 19025,87 лампочек.

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

  4. Добавьте новую строку над выражением return введите var annualGenInLightbulbsRounded = .

    Теперь надо найти функцию Округления на вкладке Функции.

  5. Перейдите на вкладку Функции. В поле поиска введите округление.

    Функция Округлить

    Появится функция Округление.

  6. Щелкните функцию Округление, чтобы вставить ее в окно выражения.

    Функция Округление добавляется к выражению с параметром, помеченными скобками.

    Функция Округление с двумя параметрами, помеченными скобками.

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

  7. На вкладке Функции щелкните стрелку рядом с функцией Округление.

    Кнопка Информация

  8. Просмотрите информацию для функции Округление.

    Справка по функции Округление

    Первый параметр - это округляемое число, в нашем случае это - переменная annualGenInLightbulbs. Второй параметр указывает количество десятичных знаков, до которого необходимо округлить это число. Вы сохраните значение по умолчанию 0, и таким образом 19025,87519025875 следует округлить до 19026, оставив после запятой 0 десятичных знаков.

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

    Кнопка Возврат к списку функций

  10. Измените текст строки annualGenInLightbulbsRounded на следующий:

    var annualGenInLightbulbsRounded = Round(annualGenInLightbulbs, 0)

    Примечание:

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

  11. В выражении return замените annualGenInLightbulbs на annualGenInLightbulbsRounded.

    Создайте переменную annualGenInLightbulbsRounded.

  12. Щелкните Запустить для проверки выражения.

    Полученный результат 19026 соответствует ожидаемому. Он равен 19026 лампочек.

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

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

  13. Добавьте новую строку над выражением return введите var annualGenInLightbulbsText = .

    Теперь вы найдете функцию Текст на вкладке Функции.

  14. На вкладке Функции найдите text. Под списком Текстовые функции щелкните функцию Текст, чтобы вставить ее в окно выражения.

    Новая строка будет выглядеть так:

    var annualGenInLightbulbsText = Text(value)

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

  15. На вкладке Функции щелкните стрелку рядом с функцией Текст.

    Первым параметром будет число, которое надо преобразовать в текст; в нашем случае это будет переменная annualGenInLightbulbsRounded. Вторым параметром будет шаблон, выражающий желаемый формат. Например, шаблон по умолчанию '#,###' добавляет запятые - разделители тысячных долей. Это означает, что число, написанное как 9563, станет числом 9,563.

  16. Когда вы закончите просмотр информации, щелкните стрелку назад, чтобы выйти из встроенной справки.
  17. Измените текст строки annualGenInLightbulbsText на следующий:

    var annualGenInLightbulbsText = Text(annualGenInLightbulbsRounded, '###,###,###,###')

    Примечание:

    Шаблон '###,###,###,###' добавляет разделители для больших чисел, чем шаблон по умолчанию '#,###'. Поскольку вы ожидаете значения в миллион и более, вам нужна более длинная маска. Например, число, записанное как 735790325, станет 735 790 325.

  18. В выражении return замените annualGenInLightbulbsRounded на annualGenInLightbulbsText.

    Создайте переменную annualGenInLightbulbsText.

  19. Щелкните Запустить для проверки выражения.

    Выходные данные - "19,026", со вставленной запятой, как и ожидалось. Тип данных теперь текст.

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

    Примечание:

    Шаблонный литерал - это в Arcade способ вставки в строку значений переменных и выражений. Шаблонные литералы заключаются в "обратные кавычки" (`) и используют синтаксис ${variableName} для вставки в строку переменных, выражений или любого другого не строкового значения. Более подробно о шаблонных литералах см. в разделе справки ArcGIS Arcade Структура и логика.

  20. В окне Выражение добавьте новую строку перед выражением return и скопируйте и вставьте следующее:

    var popupSentence = `It's estimated that ${ plantName } generates enough electricity to power ${ annualGenInLightbulbsText } 60-watt incandescent light bulbs for a year.`

    Примечание:

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

  21. В строке выражения return замените annualGenInLightbulbsText на popupSentence, чтобы проверить самую последнюю переменную.

    Создайте переменную popupSentence.

  22. Нажмите кнопку Запустить.

    На вкладке Выходные данные значением результата является все предложение, в котором переменные ${plantName} и ${annualGenInLightbulbsText} были заменены их текущими значениями.

    Результатом проверки является предложение.

  23. В окне выражения удалите код annualGenerationGwh = 10.
  24. Щелкните Готово, чтобы сохранить выражение и закрыть редактор выражений Arcade.
  25. На свернутой панели инструментов Содержание щелкните кнопку Сохранить и открыть и нажмите Сохранить, чтобы сохранить все изменения на карте.

    Сохраните карту.

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

Добавление выражения Arcade во всплывающее окно

Теперь вы добавите сохраненное выражение Arcade во всплывающее окно и проверите его на слое Global Power Plants на карте.

  1. На панели Атрибутивные выражения нажмите кнопку назад.

    Кнопка Назад

  2. На панели Всплывающие окна щелкните Текст и щелкните Редактировать текст.

    Текстовый элемент

    Откроется редактор текстов всплывающих окон с текстом, который в данный момент отображается во всплывающих окнах для слоя Global Power Plants. Вы добавите результат выражения Arcade в существующий текст.

  3. В редакторе текстов всплывающих окон поместите курсор на следующую строку под существующим текстом. Введите одну скобку: {.

    Появится список доступных полей и выражений Arcade.

    Вставьте скобку.

  4. Найдите и выберите только что созданное вами выражение Расчетная годовая выработка в лампочках.

    Выберите это выражение в ниспадающем списке.

    Примечание:

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

  5. Выражение будет добавлено с уникальным идентификатором {expression/expr1}.

    Заполнение всплывающего окна

  6. Нажмите OK.

    Всплывающее окно предварительного просмотра обновляется с настроенным выражением Arcade.

    Предварительный просмотр всплывающего окна в слое Global Power Plants.

    Теперь на карте вы откроете всплывающее окно для определенной электростанции, чтобы увидеть, как отображается выражение Arcade.

  7. На карте щелкните кнопку Поиск на вертикальной панели инструментов.

    Кнопка Поиск

  8. В окне поиска введите Kitzingen, Bayern, Germany и нажмите Enter.

    Карта приблизится к городу Китцинген в Германии.

  9. Щелкните по электростанции к западу от надписи Kitzingen. Она обозначена светло-зеленым цветом, потому что это источник солнечной энергии.

    Электростанция Китцинген на карте

    Всплывающее окно откроется, и появится созданное вами сообщение. Предложение содержит количество 60-ваттных лампочек, которые электростанция могла бы питать в течение года: 146 258.

    Текст во всплывающем окне для электростанции Китцинген

  10. Закройте всплывающее окно.

    Вы успешно создали выражение Arcade и отобразили его во всплывающем окне для слоя Global Power Plants. Но вам еще надо позаботиться об особом случае, когда в поле estimated_generation_gwh нет значения электростанции. Вы это сделаете в следующем разделе.

Проверка особого случая, когда данные отсутствуют

Теперь рассмотрим случай, когда данные атрибутов отсутствуют. Сначала вы изучите, как выглядит всплывающее окно в таком случае.

  1. Нажмите кнопку Поиск. В поисковом окне введите Antananarivo, Analamanga, Madagascar и нажмите Enter.

    Карта приблизится к городу Антананариву на Мадагаскаре.

  2. Щелкните на электростанции к северо - западу от надписи Антананариву. Она обозначена красным цветом, потому что это - нефтяная энергетическая установка.

    Всплывающее окно Антананариву на карте

    Всплывающее окно откроется, и появится созданное вами сообщение. Но упомянутое в нем количество 60-ваттных лампочек равно 0.

    Текст во всплывающем окне для недостающего значения

    Это вводит в заблуждение: по оценкам, электростанция вырабатывает не 0 ГВт-ч в год; скорее, нет данных о годовой выработке электроэнергии. В таких случаях было бы лучше иметь другое сообщение, ясно говорящее о том, что данных нет. Вы вернетесь к выражению Arcade, чтобы выполнить это более правильное действие.

  3. Закройте всплывающее окно.
  4. На панели Слои убедитесь, что выбран слой Global Power Plants.
  5. На панели инструментов Настройки щелкните Всплывающие окна. На панели конфигурации Всплывающие окна щелкните Выражения атрибутов.
  6. Щелкните выражение Расчетная годовая выработка в лампочках, чтобы открыть его в редакторе.

    Снова откройте редактор выражений Arcade.

  7. В окне редактора щелкните кнопку Запустить, чтобы убедиться, что получено то же поведение, что и во всплывающем окне.

    Результат проверки, который показывает ноль ватт

    На вкладке Выходные данные значение содержит то же предложение, что и во всплывающем окне с неверным количеством лампочек 0.

    Примечание:

    Помните, что по умолчанию редактор Arcade использует первую электростанцию в слое, гидроэлектростанцию Каяки в Афганистане, и ранее вы видели, что у этой электростанции нет значения для поля estimated_generation_gwh.

Добавление кода для обработки недостающих данных

Теперь вы добавите код в свое выражение, чтобы лучше выполнить работу, когда отсутствуют данные.

Чтобы лучше выполнить работу, когда отсутствуют данные, выражению Arcade требуется проверить, пусто ли значение поля estimated_generation_gwh или нет.

  • Если это поле пусто, вы возвратите сообщение об отсутствии данных.
  • Если это поле не пусто, вы продолжите создание сообщения о 60-ваттных лампочках.

Вы снова воспользуетесь функцией IsEmpty. Вы сохраните результаты этой проверки в новой переменной - generationCheck. Вам нужно выполнить эту проверку как можно скорее, поэтому вы добавите новый код сразу после того, как прочитаете значение поля estimated_generation_gwh.

  1. В окне Выражение добавьте строку сразу после строки, которая начинается с var annualGenerationGwh.

    Добавление строки после строки с var annualGenerationGwh

  2. Введите var generationCheck = .
  3. Щелкните вкладку Функции и найдите IsEmpty.

    Найдите функцию IsEmpty.

  4. Щелкните функцию IsEmpty, чтобы добавить ее в строку кода.

    Добавьте функцию IsEmpty в этот код.

  5. На вкладке Функции нажмите стрелку рядом с функцией IsEmpty, чтобы узнать, как она работает.

    Кнопка информации для IsEmpty

    isEmpty принимает только один параметр (в вашем случае он будет оценивать поле estimated_generation_gwh). Если это значение будет нулевым или пустой строкой, функция возвратит значение true; во всех других случаях возвращаемое функцией значение будет false. Вы сохраните результат функции IsEmpty в переменной, а затем определите, является ли эта переменная истинной или ложной.

  6. Когда вы закончите просмотр информации о функции IsEmpty, нажмите стрелку назад рядом с Функции.
  7. В окне Выражение замените текст заполнителя value на annualGenerationGwh. Теперь строка должна выглядеть так:

    var generationCheck = isEmpty(annualGenerationGwh)

    Затем вы добавите код, чтобы принять решение о том, что делать, исходя из значения переменной generationCheck. Для этого вы будете использовать выражение if (иначе называемое условным выражением или оператором). Синтаксис этого выражения - if (условие истинно) {что-то сделать}. Дополнительные сведения об условных утверждениях вы можете узнать в Структуре и логике ArcGIS Arcade.

  8. Добавьте новую строку после строки, которая начинается с var generationCheck.
  9. В новой строке введите if (generationCheck) {. Нажмите Enter. Пропустите строку и добавьте закрывающуюся скобку } без отступа.

    Добавьте оператор If.

    Примечание:

    Поскольку переменная generationCheck содержит true или false, вы, по сути, спрашиваете Arcade if(true) или if(false). Инструкции в скобках будут выполняться только в том случае, если generationCheck является true.

    Теперь вы напишете код для выполнения желаемого действия, когда estimated_generation_gwh будет пустым. В скобках вы создадите сообщение, которое должно отображаться. Как и раньше, вы будете использовать шаблонный литерал, который сохраните в новой переменной.

  10. В скобках введите или скопируйте и вставьте следующий текст (все в одной строке):

    var noGenerationTL = `${ plantName } does not have estimated annual generation data. Unable to return electricity generation in 60w incandescent light bulbs.`

    В этом выражении используется переменная plantName, заданная ранее в вашем коде.

    И, наконец, вы добавите утверждение return для возврата этого сообщения.

  11. Добавьте новую строку над закрывающей скобкой и введите return noGenerationTL.

    Добавьте утверждение Return в условие If.

  12. Щелкните Запустить для проверки скрипта.

    Запустите новое сообщение на предмет отсутствующих данных.

    На этот раз в сообщении нет вводящего в заблуждение текста о 0 лампочках. Вместо этого в нем объясняется, что для гидроэлектростанции Каяки в Афганистане отсутствуют данные.

    Примечание:

    Важно понимать, что когда Arcade выполняет оператор return, он считает, что это - конец выполнения кода, и любой оставшийся код ниже этого оператора будет игнорироваться. Это именно то поведение, которое вам нужно, поскольку оставшийся код применяется только к объектам, для которых имеются данные по расчетной годовой выработке электроэнергии.

Выполнение других проверок с помощью выражений консоли

В качестве заключительной задачи в редакторе выражений Arcade теперь вы узнаете другой метод проверки выражения Arcade. До этого вы использовали выражения return для просмотра результатов скриптов. Однако бывают случаи, когда вам необходимо визуализировать значения переменных по всему коду. Чтобы их увидеть, можно использовать выражения console, которые будут записывать значение интересующих вас переменных на вкладке Консоль. Например, вы пожелаете увидеть значение переменной generationCheck.

  1. В окне Выражение добавьте строку сразу после строки, которая начинается с var generationCheck.
  2. В новой строке введите console("generationCheck value:", generationCheck).

    Добавьте выражение Console.

    Первый параметр дает некоторое объяснение объекта, который вы заносите в консоль. Второй параметр - это сам объект.

  3. Нажмите кнопку Запустить.

    Вкладка Выходные данные будет выглядеть так же, как и раньше, показывая конечный результат выражения Arcade.

  4. Перейдите на вкладку Консоль, чтобы просмотреть значение переменной, записанное в консоль.

    Перейдите на вкладку Сообщения.

    Значение, содержащееся в переменной generationCheck равно true, потому что значение для estimated_generation_gwh является пустым.

  5. Попробуйте другие примеры значений для $feature["estimated_generation_gwh"] и проверьте это выражение для каждого из них, наблюдая за вкладками Выходные данные и Консоль. Добавьте примеры, которые дают либо значение true, либо значение false для generationCheck.
    Примечание:

    Вы можете добавить столько операторов console, сколько пожелаете, чтобы создать и настроить выражение Arcade. Однако рекомендуется удалить или закомментировать эти операторы после окончания работы над этим выражением.

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

  6. В начале выражения консоли введите //.

    Закомментируйте выражение консоли.

    Выражение консоли теперь закомментировано и не будет запускать команду.

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

    
    // Calculate the kilowatt-hours (kWh) required to power a 
    // 60w light bulb for a year
    var yearLightbulbPower = 0.06 * 24 * 365
    
    // Save the power plant name and annual generation to a variable 
    // for later use
    var plantName = $feature.name
    var annualGenerationGwh = $feature["estimated_generation_gwh"]
    
    // Check if there is a value in the estimated annual generation 
    // attribute field. isEmpty(fieldOrValue) returns true if empty
    var generationCheck = isEmpty(annualGenerationGwh)
    
    // Write to the generationCheck value to the Message tab for 
    // testing purposes (commented out)
    // console("generationCheck value:", generationCheck)
    
    // If there is not annual generation data, return a sentence for use
    // in the pop-up that informs the user about this.
    if (generationCheck) {
        var noGenerationTL = `${ plantName } does not have estimated annual generation data. Unable to return electricity generation in 60w incandescent light bulbs.`
        return noGenerationTL
    } 
    
    // If the annual generation data is present, continue with the remainder of the script. 
    // Convert the annual generation attribute from
    // gigawatt-hours to kilowatt-hours
    var annualGenerationKwh = annualGenerationGwh * 1000000
    
    // Compute the annual electricity generation in light bulbs
    var annualGenInLightbulbs = annualGenerationKwh / yearLightbulbPower  
      
    // Round the number 
    var annualGenInLightbulbsRounded = Round(annualGenInLightbulbs, 0)  
      
    // Format the number to add thousand separators    
    var annualGenInLightbulbsText = Text(
        annualGenInLightbulbsRounded, '###,###,###,###')
    
    // Build the sentence for use in the pop-up 
    // (Create a string using a template literal)
    var popupSentence = `It's estimated that ${ plantName } generates enough electricity to power ${ annualGenInLightbulbsText } 60-watt incandescent light bulbs for a year.`
    
    // Return the value
    return popupSentence
    Примечание:

    Поскольку предложение, обрабатывающее недостающие данные, находится внутри оператора if, вы можете при необходимости вложить остальную часть выражения else {<rest of expression>} в Arcade. Но, если однозначно не написать else {}, как вы видели, остальная часть выражения будет продолжать выполняться, если это условие в операторе if не будет соблюдено.

    Теперь вы закроете редактор выражений Arcade и проверите всплывающие окна на карте.

  7. Щелкните Готово, чтобы сохранить свое выражение и закрыть редактор.

    Теперь во всплывающем окне для Mandroseza показано корректное выражение.

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

  8. На панели Выражения всплывающего окна нажмите кнопку назад. Закройте панель Всплывающие окна.
  9. Сохраните карту.
  10. Щелкните по нескольким электростанциям на карте, чтобы убедиться, что ваше выражение Arcade работает правильно.
    Примечание:

    Вы можете искать те же два места, что и раньше ( Китцинген, Бавария, Германия и Антананариву, Аналаманга, Мадагаскар). Кроме того, можете попробовать и новые места.

Вы рассчитали количество электроэнергии, необходимое для питания 60-ваттной лампочки в течение года, а также количество 60-ваттных лампочек, которые каждая электростанция может питать в течение года. Вы округлили значение до целого числа и добавили разделители тысячных. Вы создали два разных предложения, которые могут быть возвращены во всплывающее окно – одно для сценариев, когда присутствуют данные о годовой выработке электроэнергии для электростанции, и другое - для случаев, когда эти данные присутствуют. Затем вы обеспечили, чтобы объекты электростанции на карте отображали соответствующее предложение, используя оператор if.

В этом руководстве вы познакомились с редактором выражений Arcade. Вы использовали Arcade для обозначения стран мира по потреблению электроэнергии на душу населения. Вы использовали Arcade, чтобы определить количество 60-ваттных лампочек, которые каждая электростанция может питать в течение года, и отобразили результат во всплывающем окне. Весь код Arcade был выполнен на лету, не оказывая влияния на базовые данные.

В этом руководстве была затронута лишь часть из того, что вы можете сделать с помощью Arcade. Более подробно о выражениях надписей и вычислении полей в Arcade, см.уроки Pump up Your Pop-ups With Arcade FeatureSets and the Living Atlas и Bring Colors From Your Map Into Your Pop-up Using Arcade.

Вы можете найти больше учебных пособий в галерее учебных пособий.