Разработка и применение пользовательского символа

Слой USA Current Wildfires использует круглый символ с простой формой пламени внутри. Чтобы начать этот урок, вы изучите принципы разработки именно такого символа.

Решите, что необходимо разработать в символе

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

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

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

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

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

Создание ваших собственных символов в ArcGIS Online сделает ваши карты уникальными и понятными. Вы изучили возможные принципы дизайна для пользовательских символов и некоторые способы, как их найти. Далее вы загрузите и примените пользовательский символ пламени к набору данных USA Current Wildfires.


Отображение данных о лесных пожарах в реальном времени по типу и по масштабу

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

Легенда с восьмью классами символов для различных типов и размеров лесных пожаров.

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

Загрузите символ лесного пожара и сохранить копию карты лесных пожаров

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

  1. Скачайте символ пожара.

    Этот символ для инцидентов лесных пожаров в США, которые возникли за последние 24 часа.

    Желтый круглый символ с формой пламени красного цвета внутри

  2. Откройте веб-карту USA Current Wildfires.

    Веб-карта USA Current Wildfires появится в Map Viewer. На карте показаны красные маркеры, в основном в западной части США.

    Карта USA Current Wildfires откроется в Map Viewer с красными кругами, обозначающими места лесных пожаров

    Затем вы сохраните свою собственную копию этой карты.

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

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

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

    Опция Сохранить как и меню Сохранить и открыть

  5. В окне Сохранить карту для Заголовка наберите USA Current Wildfires и добавьте свое имя или инициалы. Примите существующий текст без изменений для Теги и Краткая информация.

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

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

Классификация по типу пожару

У слоя USA Current Wildfires нет специальных полей, которые вам нужны для создания классов символов. Вы будете использовать ArcGIS Arcade, чтобы задать категории символов, которые вам нужны. С помощью Arcade вы создадите пользовательские категории на лету без добавления полей.

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

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

    Вкладка Ресурсы

    В карте есть три тематических слоя, но только один из них видимый: Sept 1, 2021. Этот слой - архивная версия слоя реального времени. Он был записан 1 сентября 2021 года, во время сезона особенно сильных пожаров на западе, и содержит весь диапазон значений данных, необходимых для создания полного набора символов.

    Список слоев с активным слоем Sept 1, 2021

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

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

  2. В панели Слои щелкните Sept 1, 2021, чтобы выбрать его
    Примечание:

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

  3. На панели инструментов Настройки (светлая) щелкните Стили.

    Кнопка Изменить стиль для слоя Sept 1, 2021

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

    Опция Новое выражение в меню Выберите атрибут для отображения

    Появится редактор выражения Arcade. Окно выражения - это то место, где вы создаете выражение.

  5. В окне Выражение удалите первые три строки, они не понадобятся. Введите (или скопируйте и вставьте) var Acres = и добавьте в конце пробел.

    В Выражении задано var Acres =

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

    Далее вы укажете значение переменной.

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

    Развернуть боковую панель

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

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

    Добавить переменные профиля

  8. В Значениях найдите и щелкните $feature.DailyAcres.

    $feature.DailyAcres в списке Глобальные переменные

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

    Переменная объектов Daily Acres добавлена в окно выражения

    В дальнейшем любая ссылка на переменную Acres будет получать доступ к значению атрибута Daily Acres для каждого объекта в слое (в нашем случае это каждый отдельный пожар).

    Вы определите еще две переменные для представления еще двух полей.

  9. В окне Выражение нажмите Enter, чтобы перейти на следующую строку выражения. Скопируйте и вставьте следующие две строки кода:
    var Age = $feature.FireDiscoveryAge
    var Type = $feature.IncidentTypeCategory

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

    Вы проверите, как работают переменные.

  10. В окне Выражение в новой строке наберите return Type
  11. Щелкните Запустить.

    Кнопка Тестировать в окне Выражение

    Появится окно Результаты. Показанный результат - это RX.

    RX в таблице Результаты

    Это значение из поля Incident Type Category для первого инцидента пожара в наборе данных. RX - это код для предписанного пожара.

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

  12. В окне выражения удалите текст return Type. Скопируйте и вставьте следующий код:
    
    if (Type == 'RX') {
    return "Prescribed Fire"
    }

    Это выражение if возвращает строку Prescribed Fire каждый раз, когда в поле Incident Type Category значение RX.

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

    Возвращаемый результат Prescribed Fire.

    Предписанный пожар в таблице Результаты.

  14. На следующей строке скопируйте и вставьте следующий код:
    
    if (Type == 'CX') {
    return "Incident Complex"
    }
    if (Age == 0) {
    return "New (Past 24-hour)"
    }

    Этот код создает еще две категории символов. Первая предназначена для комплексов инцидентов, представляющих собой два или более пожара в одной области, которые управляются одной командой по управлению инцидентами. Вторая категория для пожаров, сообщение о которых появились за последние 24 часа. Для новых инцидентов пожаров нет кода Type. Выражение ищет новые записи, просматривая переменную Age (поле Fire Discovery Age).

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

  15. В окне выражения в следующей строке скопируйте и вставьте следующий код:
    
    When (
    Acres < 1000, "0-999",
    
    )

    Любые инциденты, которые не попали под условия IF, будут переданы в это выражение When:

    Это выражение переводится как When значение Acres меньше, чем 1000, вернуть строку 0-999. Вы добавите больше классов символов для больших пожаров.

  16. Поместите курсор на пустой строке (строка 15) и вставьте следующий код:
    
    Acres < 10000, "1,000-9,999",
    Acres < 50000, "10,000-49,999",
    Acres < 300000,"50,000-299,999",

    Выражение When для различных значений Acres

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

  17. Поместите курсор перед закрывающей скобкой и вставьте "300,000 or more" (включая кавычки). Нажмите Enter.

    Готовое выражение

    Ваше выражение должно выглядеть вот так:

    
    var Acres = $feature.DailyAcres
    var Age = $feature.FireDiscoveryAge
    var Type = $feature.IncidentTypeCategory
    if (Type == 'RX') {
    return "Prescribed Fire"
    }
    if (Type == 'CX') {
    return "Incident Complex"
    }
    if (Age == 0) {
    return "New (Past 24-hour)"
    }
    When (
    Acres < 1000, "0-999",
    Acres < 10000, "1,000-9,999",
    Acres < 50000, "10,000-49,999",
    Acres < 300000,"50,000-299,999",
    "300,000 or more"
    )

    Вы написали выражения If перед выражением When, поэтому выражение будет выполняться более эффективно. Порядок выражений важен: выражение If сначала фильтрует сначала те пожары, которые не нужно сортировать по размеру, поэтому выражение When должно обработать оставшиеся пожары, а не все. Это выражение следует рекомендациям выполнения сначала более общей сортировки (в этом случае, по типу пожара) перед специфичной сортировкой (в этом случае, по размеру пожара), что позволяет слою быстрее отображаться на карте

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

    Результат - Prescribed Fire.

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

  19. В верхней части редактора выражений Arcade, удалите существующий текст.
  20. Введите USA Wildfire Incidents (Acres) и нажмите Tab.

    Кнопка Редактировать для имени выражения

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

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

    На карте показан стиль на основании пользовательского выражения

Применение пользовательских символов

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

  1. На панели Стили в разделе Выбрать стиль для карточки Типы (уникальные символы) щелкните Опции стилей.

    Кнопка Опции стилей на карточке Типы (уникальные символы)

  2. На панели Опции стилей рядом с 300,000 or more щелкните и перетащите кнопку переупорядочивания, чтобы переместить слой в верх списка.

    Перетаскивание слоя снизу наверх списка слоев

  3. Измените порядок классов символов таким образом, чтобы они отображались в следующем порядке:
    • 300,000 or more
    • 50 000-299 999
    • 10 000-49 999
    • 1 000-9 999
    • 0-999
    • New (Past 24-hour)
    • Incident Complex
    • Prescribed Fire

    Классы символов перегруппированы.

    Порядок классов символов перегруппирован

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

  4. Щелкните символ рядом с New (Past 24-hour) (Новые (Последние 24 часа)).

    Символ для класса символов Новые (Последние 24 часа)

  5. На панели Стиль символов для Текущего символа щелкните Основная точка.

    Основная точка

  6. Для Категории, в разделе Добавленные стили, щелкните Загруженные символы.

    Опция Загруженные символы

  7. Нажмите Обзор и выберите изображение, загруженное вами ранее в предыдущем упражнении.
  8. Щелкните Готово.

    Выберите окно изображения символа

    Желто-красный значок пламени отображается в окне Стиль символов.

  9. Для Размера введите 19.5 пикселов.

    Новые пожары теперь имеют пользовательский символ.

    Карта с разноцветными символами и символами новых пожаров

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

  10. На панели Опции стиля щелкните Готово дважды.
  11. На панели Содержание для слоя Sept 1, 2021 нажмите кнопку Видимость, чтобы его более не было видно.
  12. Для слоя USA Current Wildfires – Current Incidents нажмите кнопку Видимость, чтобы он отобразился на карте.

    Слой USA Current Wildfires - Current Incidents видим на карте

    Примечание:

    Слой USA Current Wildfires – Current Incidents все время изменяется и дополняется, поэтому карта, которую вы видите, может не соответствовать иллюстрации в учебном руководстве.

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

    Кнопка Показать легенду для слоя USA Current Wildfires - Current Incidents.

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

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

Изменение размера символов в зависимости от масштаба карты

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

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

  1. На панели Слои проверьте, что выбран слой USA Current Wildfires – Current Incidents. На панели инструментов Настройки щелкните кнопку Стили.

    В разделе Выбрать атрибуты перечислены выбранные атрибуты - это USA Wildfire Incidents (Acres). Это то же выражение, которое вы создали в предыдущих шагах.

  2. Для Выбрать атрибуты щелкните Выражение.

    Выражение на панели Стили

    Вы начнете с создания переменных.

  3. В окне Выражение удалите существующий текст. Скопируйте и вставьте следующий код:
    
    var Acres = $feature.DailyAcres
    var Age = $feature.FireDiscoveryAge
    var Type = $feature.IncidentTypeCategory

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

  4. На следующей строке наберите var vs = и добавьте в конце пробел.
  5. На панели Переменные профиля щелкните стрелку для $view и нажмите $view.scale.

    Переменная vs возвращает текущий масштаб карты в момент запуска выражения.

    Выражение с $view.scale

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

  6. Нажмите Enter. Введите return vs. Нажмите Запустить.

    Результат - это большое число.

    Большое число в таблице Результаты

    Число представляет текущий масштаб карты. Оно может различаться в зависимости от масштаба вашей карты перед тем, как вы открыли редактор выражения Arcade. В примере выше текущий масштаб карты приблизительно 1:18 500 000.

  7. Удалите return vs. Нажмите Enter, чтобы пропустить строку.
  8. Скопируйте и вставьте следующий код:
    
    var ValueSize = When (
    Type == 'RX', 17,
    
    )

    Переменная ValueSize не ссылается на одно значение из таблицы атрибутов или карты, как делают другие переменные. Эта переменная содержит выражение. Выражение означает When Type равен RX, сделать размер символа 17 точек. Вы добавите комментарий в это выражение, чтобы его было легче понять.

  9. Поместите указатель после Type == 'RX', 17,. Наберите пробел, а затем //Prescribed Fire.

    Комментарий добавлен в выражение.

    В Arcade любой текст после // это комментарий. Комментарии не влияют на код.

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

  10. Поместите указатель на пустой строке (строка 8) и вставьте следующий код:
    
    Type == 'CX', 18, //Incident Complex
    Age == 0, 19.5, //Past 24-hour
    Acres < 1000, 18, //0-999
    Acres < 10000, 25, //1,000-9,999
    Acres < 50000, 33, //10,000-49,999
    Acres < 300000, 41, //50,000-299,999

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

    Далее вы проверите выражение ValueSize.

  11. Поместите указатель после закрывающей скобки и нажмите Enter дважды, чтобы пропустить строчки.
  12. Введите return ValueSize и нажмите Запустить.

    Окно Результаты показывает ошибку.

    Ошибка выполнения: Должен быть результат значения по умолчанию

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

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

  13. Поместите курсор перед закрывающей скобкой и наберите 47. Поместите курсор после закрывающей скобкой и наберите //300,000 or more.
  14. Снова щелкните Запустить.

    На этот раз возвращено число. Оно может быть разным, потому что вы работаете с набором данных реального времени, который обновляется каждый день, но число должно быть 17, 18, 19.5, 25, 33, 41 или 47.

    47 в таблице Результаты.

    В примере выше возвращено число 47, которое показывает вам, что проверяемый объект - это стихийный пожар, площадь которого более, чем 300 000 акров.

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

  15. Удалите return ValueSize и нажмите Enter. Скопируйте и вставьте следующий код:
    
    When(
    vs > 9000000, ValueSize,
    vs > 4000000, 1 + ValueSize,
    
    )

    Выражение When для изменения масштаба

    Это выражение означает следующее:

    • Когда масштаб карты больше 1:9 000 000, возвращается значение, заданное выражением ValueSize.
    • Когда масштаб карты больше 1:4 000 000, возвращается значение, заданное выражением ValueSize плюс 1.

    Эффект этого выражения на карте будет следующим:

    • Когда масштаб карты уменьшается, будут использоваться базовые размеры символов.
    • Когда масштаб карты увеличивается, размеры символов будут увеличиваться на одну точку.
  16. Поместите указатель на пустой строке (строка 20) и вставьте следующее:
    
    vs > 2000000, 2 + ValueSize,
    vs > 1000000, 3 + ValueSize,
    vs > 500000, 4 + ValueSize,
    5 + ValueSize

    Полное выражение When для изменения масштаба

    Это выражение When добавляет все увеличивающиеся числа к базовому размеру символа по мере увеличения масштаба. При уменьшении масштаба до отображения всей территории США, символ предписанного пожара будет 17 точек. Когда вы приближаетесь до масштаба города, он будет увеличен до 22 точек (17+5), так что останется заметным.

    Примечание:

    Карта меньшего масштаба означает, что эта карта, на которой объекты выглядят меньше по размеру. Масштаб 1:9 000 000 мельче, чем 1:500 000.

    Ваше окончательное выражение должно выглядеть вот так:

    
    var Acres = $feature.DailyAcres
    var Age = $feature.FireDiscoveryAge
    var Type = $feature.IncidentTypeCategory
    var vs = $view.scale
    
    var ValueSize = When (
    Type == 'RX', 17, //Prescribed Fire
    Type == 'CX', 18, //Incident Complex
    Age == 0, 19.5, //Past 24-hour
    Acres < 1000, 18, //0-999
    Acres < 10000, 25, //1,000-9,999
    Acres < 50000, 33, //10,000-49,999
    Acres < 300000, 41, //50,000-299,999
    47 //300,000 or more
    )
    
    When(
    vs > 9000000, ValueSize,
    vs > 4000000, 1 + ValueSize,
    vs > 2000000, 2 + ValueSize,
    vs > 1000000, 3 + ValueSize,
    vs > 500000, 4 + ValueSize,
    5 + ValueSize
    )

    Наименьший размер символа 17, а наибольший 52 (47 + 5). Эти числа вам понадобятся позже, чтобы настроить символы.

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

    Результат должен быть числом от 17 до 52.

  18. Имя выражения Размер символа. Нажмите Tab.
  19. Щелкните Готово.

    На панели Стили в разделе Выбрать атрибуты находятся два выражения: USA Wildfire Incidents (Acres) and Размер символа. Оба этих значения будут представлены символами.

    Панель Изменить стиль с двумя выражениями

Символы стиля по типу и размеру

На панели Стили доступен стиль Типы и размер. Эта опция отображается, когда у вас есть одно поле (или выражение), которое возвращает текстовые значения, и другое, которое возвращает числовые значения.

  1. На панели Стили для Типы и размер щелкните Опции стилей.

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

  2. Для Типы (уникальные символы) щелкните Опции стилей.

    Кнопка Опции стилей на карточке Типы (уникальные символы)

    Все символы, которые были применены на основе выражения USA Wildfire Incidents (Acres), все еще существуют. Вам не нужно делать здесь никаких изменений.

    Восемь классов символов пожаров с различными пользовательскими символами

  3. Щелкните Отмена.
  4. На карточке Числа и количества (размер) щёлкните Опции стилей.

    Этот стиль будет конвертировать значения из выражения Размер символа в настоящие размеры символов. Вы настроите стиль так, что возвращаемое значение 17 (наименьшее возможное выражение) будет отображаться символом размером 17 пикселов, а возвращаемое значение 52 (наибольшее возможное значение) будет отображаться символов 52 пиксела.

  5. Щелкните число вверху гистограммы. Наберите 52 и нажмите Enter.
    Примечание:

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

    Максимально значение установлено в 52 над гистограммой.

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

  6. Перетащите метку вверх, пока на ее подписи не появится 52.

    Теперь когда вы корректно задали диапазон данных, вы убедитесь, что диапазон размера соответствует диапазону от 17 до 52.

  7. В опции Размер измените Min на 17 пиксела и Max на 52 пиксела.

    Минимальный размер установлен на 17 пикселов, а максимальный – на 52 пиксела.

  8. Выключите опцию Включить в легенду.
  9. Щелкните Готово три раза.
  10. Масштабируйте карту и наблюдайте за размерами символов.

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

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

    Символы с (справа) и без (слева) размерами, изменяемыми в зависимости от размера.

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

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


Настройка надписей, границ пожара и всплывающих окон

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

Создание надписей

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

  1. При необходимости повторно откройте веб-карту USA Current Wildfires.
  2. На панели Слои проверьте, что выбран слой USA Current Wildfires – Current Incidents. На панели инструментов Настройки щелкните Надписи.

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

  3. На панели Надписи выключите опцию Включить надписи.

    Включение надписей на панели Надписать объекты

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

    Карта с подписанными пожарами

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

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

  4. На панели Надписать объекты для Поля надписи щелкните кнопку для выражения.

    Кнопка Редактировать выражение рядом с полем Текст

  5. В редакторе выражений Arcade удалите существующий текст и наберите и скопируйте и вставьте var Name = Upper($feature.IncidentName).

    Переменная Имя будет возвращать значение IncidentName из атрибутивной таблицы, но изменит его, чтобы сделать его заглавными буквами.

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

  6. На следующей строке наберите или скопируйте и вставьте следующий код:
    
    var Type = $feature.IncidentTypeCategory
    
    When (
    Type == 'WF', Name,
    Type == 'CX', Name,
    ""
    )

    Выражение When для надписей

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

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

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

  8. Отредактировать имя выражения на Uppercase Name. Нажмите Tab и щёлкните Готово.

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

    Карта с надписями заглавными буквами для пожаров

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

    Вы исправите эти недостатки, оформив надписи белыми и красными символами.

  9. На панели Надписать объекты щелкните Редактировать стиль надписей.
  10. В окне Стиль надписи для Цвета выберите белый.
  11. Включите Гало. Для Цвета выберите красный. Задайте Размер равным 2.

    Настройки Гало в окне Стиль надписей

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

  12. Для Размещения выберите В центре внизу.

    Теперь надписи лежат непосредственно под каждым символом.

    Карта с красными и белыми надписями для пожаров.

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

  13. Закройте окно Стиля надписей.
  14. В панели Надписать объекты в опции Видимый диапазон щёлкните Мир и выберите Округа.

    Параметры Размер и Видимый диапазон для надписей

  15. Масштабируйте карту, чтобы проверить надписи.

    Они появляются при приближении и исчезают при отдалении.

    Карта с немного уменьшенными надписями для пожаров

    Эти надписи дают информацию без подавления символов пожаров.

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

Назначение символов границам областей пожаров

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

  1. На панели Слои выключите слой USA Current Wildfires – Current Incidents.
  2. Включите слой USA Current Wildfires – Current Perimeters и выберите его.
  3. На панели инструментов Содержание щелкните Легенда. Приближайтесь к области с большим количеством пожаров, пока не появятся периметры пожара.

    Появится панель Легенда. Этот слой имеет два класса символов: один для границ лесных пожаров, а другой для границ предписанных пожаров.

    Два класса символов для слоя USA Current Wildfires - Current Perimeters

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

  4. На панели инструментов Настройки щелкните Стили. На панели Стили для параметра Типы (уникальные символы) щелкните Опции стилей.
  5. Щелкните красный символ для Wildfire Daily Fire Perimeter.

    Символ для класса символов Wildfire Daily Fire Perimeter

  6. В окне Стиль символа щелкните Цвет заливки. В окне Выбрать цвет введите #F7ADA4 и нажмите Готово.
  7. В окне Стиль символа для Прозрачности заливки введите 50.

    Цвет заливки символа определен шестнадцатеричным кодом и прозрачность задана 50 процентов.

  8. Щелкните Цвет контура. В окне Выбрать цвет введите #E60C0C и нажмите Готово.
  9. В окне Стиль символа для Прозрачность контура введите 0.

    Цвет контура символа определен шестнадцатеричным кодом и прозрачность задана 0 процентов.

  10. На панели Опции стиля нажмите на символ для Предписанного пожара. На панели Стиль символа задайте следующие параметры:
    • Для Цвета заливки введите#E8BD71.
    • Для Прозрачности заливки переместите бегунок на 50 процентов.
    • Для Цвета контура введите #E5A53E.
    • Для Прозрачности контура переместите бегунок на 0 процентов.

    Стили для категорий в слое USA Current Wildfires - Current Perimeters теперь настроены.

    Новые символы для двух классов символов

  11. На панели Опции стиля щелкните Готово дважды.

    Границы теперь обозначены в соответствии с отраслевыми стандартами.

    Настроенные символы границ на карте

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

Настройка всплывающих окон

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

  1. На карте щелкните на полигон области пожара, чтобы просмотреть всплывающее окно.

    Всплывающее окно для Crazy Creek Incident включает текст "Acres Burned: 86,963.12"

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

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

  2. Закройте всплывающее окно.
  3. На панели Слои проверьте, что активен слой USA Current Wildfires – Current Perimeters. На панели инструментов Настройки щелкните Всплывающие окна.
  4. В панели Всплывающие окна нажмите Атрибутивные выражения.

    Атрибутивные выражения в Опциях для всплывающих окон

  5. На панели Атрибутивные выражения щелкните Добавить выражение.

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

  6. В окне Выражение удалите существующий текст или скопируйте и вставьте var GISAcres = ! IsEmpty($feature.GISAcres).

    Эта переменная проверяет, что поле GISAcres не пустое. ! означает Not.

  7. Нажмите Enter дважды и наберите return GISAcres. Щелкните Запустить.

    Если результат true, это означает, что для проверяемого объекта поле GISAcres не пустое: оно имеет значение числа акров площади горения.

  8. Удалите return GISAcres и скопируйте и вставьте следующее:

    If (GISAcres) Return text($feature["GISAcres"],'#,###.##')

    Выражение для GISAcres

    Эта строка означает, если переменная GISArcres, то возвращается текст из поля GISArcres, форматированный как число с разделителями тысяч и двумя десятичными разрядами. Для большинства случаев будет возвращено число. Однако, вы по по-прежнему нужно закончить выражение If, чтобы оно охватывало те случаи, когда переменная GISArcres возвращает false вместо true.

  9. На следующей строке наберите Return "Not Available".
  10. Щелкните Запустить.

    Результатом должно быть либо число, либо текст Not Available.

  11. Измените название выражения на Acreage.

    Готовое выражение

    Ваше окончательное выражение должно выглядеть вот так:

    
    var GISAcres = ! IsEmpty($feature.GISAcres)
    
    If (GISAcres) Return text($feature["GISAcres"],'#,###.##')
    return "Not Available"
  12. Щелкните Готово.

    Далее вы будете использовать выражение для всплывающего окна.

  13. В панели Атрибутивные выражения нажмите стрелку назад.
  14. На панели Всплывающие окна щелкните Текст и щелкните Редактировать текст.

    Кнопка Настроить

  15. В тестовом окне в третьей строке удалите {GISAcres}.
  16. Разместите указатель на Acres Burned: и щелкните кнопку Добавить имя поля.

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

  17. Щелкните Acreage{expression/exp1}.

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

  18. Нажмите OK.

    На карте щелкните некоторые объекты полигонов площади горения. Строка Acres Burned выглядит так же, как раньше, для большинства объектов.

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

  19. Закройте всплывающее окно панель Всплывающие окна.
  20. На панели Слои включите слой USA Current Wildfires – Current Incidents и изучите итоговую карту.

    Подробная готовая карта

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

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

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

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

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