Об использовании вытягивания в качестве 3D символов в ArcGlobe

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

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

Точечные и мультиточечные пространственные объекты вытягиваются в линии. Это может быть удобно для выполнения простых задач, например для подсветки какого-либо местоположения. Более сложный способ — вытягивание точечных объектов по атрибуту для создания виртуальных графиков, например, численности населения городов.

Символы городов, вытянутые согласно численности населения

При вытягивании линейных пространственных объектов, появляются стены. Этот эффект можно использовать для обозначения важных границ на 3D изображении в виде стен, или просто для создания приподнятых линейных объектов, например, для обозначения закрытых для полетов зон.

Линии электропередачи, вытянутые по постоянному значению, обозначающие зону, закрытую для полетов

Полигональные пространственные объекты при вытягивании образуют блоки. Наиболее часто вытягивание полигонов используется для создания 3D зданий из полигонов, обозначающих их контуры. Однако, это также можно использовать для отображения значений, например, цен на недвижимость, численности населения и т.д.

Контуры зданий, вытянутые по количеству этажей, умноженных на 5 метров

На закладках Вытягивание глобуса (Globe Extrusion) в ArcGlobe и Вытягивание (Extrusion) в ArcScene содержатся параметры, необходимые для задания значений или выражения вытягивания, а также для выбора метода вытягивания каждого слоя. Вытягивание можно применять после задания базовых высот объектов. Комбинируя базовые высоты и параметры вытягивания, вы можете получить более реалистичное 3D изображение, не применяя 3D пространственные объекты.

Методы вытягивания

Для вытягивания пространственных объектов используются четыре метода:

  1. Добавление вытягивания к минимальной высоте каждого объекта
    • Вычисление z-значения выполняется путем сложения высоты вытягивания и минимального z-значения пространственного объекта, и объект вытягивается с поверхности на высоту вытягивания.
    • Этот метод используется только для линий и полигонов. Точечные объекты не используются, поскольку их минимальные и максимальные z-значения совпадают.
    • Этот метод может использоваться, например, для вытягивания контуров зданий в 3D символы зданий.
    На рисунках ниже показаны классы линейных и полигональных объектов (зеленым), вытянутые по расстоянию, с минимального z-значения, чтобы получить плоскую верхнюю поверхность.

    Line extrusion - Method 1Вытягивание полигонов — метод 1

  2. Добавление вытягивания к максимальной высоте каждого объекта
    • Вычисление z-значения выполняется путем сложения высоты вытягивания и максимального z-значения пространственного объекта, и объект вытягивается на эту величину.
    • Этот метод используется только для линий и полигонов. Точечные объекты не используются, поскольку их минимальные и максимальные z-значения совпадают.
    • Так же, как и предыдущий метод, этот способ можно использовать для вытягивания контуров зданий. Метод особенно удобен для работы на участках, имеющих уклоны.
    На рисунках ниже показаны классы линейных и полигональных объектов (зеленым), вытянутые по расстоянию, с минимального z-значения, чтобы получить плоскую верхнюю поверхность.

    Line extrusion - Method 2Polygon extrusion - Method 2

  3. Добавление вытягивания с использованием значения
    • Пространственный объект вытягивается в соответствии с указанным z-значением, независимо от z-значения самого объекта.
    • Этот метод может использоваться со всеми тремя типами геометрии, точками, линиями и полигонами.
    • Использование указанного z-значения означает, что при вытягивании каждого объекта будет использован атрибут, содержащий высоту абсолютного вытягивания. Примером такого атрибута может служить высота над уровнем моря.
    На рисунках ниже показаны точечные, линейные и полигональные объекты (зеленым), вытянутые до указанного z-значения, отмеченного черной стрелкой. Используется абсолютное значение вытягивания, отрицательно оно или положительно - не имеет значения.

    Point extrusion - Method 3Line extrusion - Method 3Polygon extrusion - Method 3

  4. Добавление вытягивания к базовой высоте каждого объекта
    • Z-значения вычисляется для каждой вершины основания пространственного объекта, поэтому объект вытягивается на различные z-значения. Полигональные пространственные объекты также получают автоматически сгенерированные верхнюю и боковые грани, которые соединяются с вытянутыми стенами для создания замкнутой формы.
    • Этот метод может использоваться со всеми тремя типами геометрии, точками, линиями и полигонами.
    • Этот метод часто применяется для обозначения границ, заборов или ограждений.
    На рисунке ниже показаны точечные, линейные и полигональные объекты (зеленым), вытянутые в равной степени (черная стрелка) от z-значения каждой вершины.

    Point extrusion - Method 4Line extrusion - Method 4Polygon extrusion - Method 4

Рекомендации по использованию метода вытягивания 4

  • Этот метод требует сложных вычислений, поэтому в ArcGlobe следует обязательно использовать полное кэширование слоя, на котором применяется этот тип вытягивания.
  • Для соблюдения точности, рекомендуется слои драпировки ArcGlobe, использующие этот метод, сконфигурировать как плавающие слои, отображающие определенный участок поверхности. В ArcScene используются только плавающие слои.
  • Если z-значения слоя берутся с поверхности, изменение данных источника высот не приводит к автоматическому обновлению отображения вытянутого слоя. Слой необходимо обновить вручную. Щелкните его правой кнопкой мыши и выберите Обновить (Refresh).
  • В качестве опорных точек для вытягивания могут использоваться только существующие вершины. Если линейный или полигональный объект получает z-значения по поверхности, отображающей горный район, может потребоваться увеличить число вершин объекта, чтобы вытянутый объект лучше соответствовал форме рельефа.

Особенности вытягивания больших полигонов в ArcGlobe

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

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

Горы, поднимающиеся над вытянутыми полигонами Кривизна поверхности земли и вытянутые полигоны

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

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

Однако, если вам необходимо отобразить поверхность, выступающую над вытянутым полигоном, это можно сделать разными способами. Один из методов состоит в создании двух TIN поверхностей, одна из который будет использоваться для верхней части отображаемого района, а другая — для нижней, а затем использовать инструмент геообработки Блок-диаграмма (Extrude Between) для создания объекта мультипатч между двумя поверхностями. Еще одна возможность — создать верхнюю часть вытянутых полигонов, используя инструмент Интерполировать полигон в мультипатч (Interpolate Polygon To Multipatch), конвертировать периметр полигона в полилинию, затем вытянуть линии, чтобы создать внешние вертикальные стены.

Связанные темы

9/10/2013