15.11.2010 11:17

Digitals как инструмент создания 3d модели города.


Digitals это программное обеспечение для создания цифровых карт и основное ее предназначение это создание и обновление топографических и специальных карт, ведения городского кадастра и землеустройства.
Программа предоставляет все средства для создания, редактирования и просмотра цифровых карт, но я предлагаю Вам рассмотреть еще одну ее функцию, а именно создание 3d моделей городов для программы Google Earth на основе данных цифровой карты.

Примем как исходные данные наличие у нас цифровой карты населенного пункта.

Так что же нужно еще для решения этой задачи?

Первым делом давайте загрузим в программу цифровую карту на основе которой будем создавать 3d модель города.
В данном случае это микрорайон «Филейка» в городе Кирове. Цифровая карта в формате MapInfo mif/mid в проекции UTM Zone 39.
Digitals основное окно программы.


Далее для удобства работы давайте перенесем все графические примитивы (обозначающие у нас здания) в один слой. Для этого кликните на каком нибудь здании при открытой закладке «Правка» правой панели инструментов. Вы увидите к какому слою относится объект.
Digitals список слоев.


Далее выделите все объекты и перенесите их в этот слой.
Как Вы наверное понимаете для создания 3d объектов из полигонов программе необходимо знать высоту на которую этот полигон надо выдавить. Изначально предполагается, что данные содержат поле с информацией о высоте здания.
Итак, для того чтобы сообщить программе о высоте объектов необходимо заполнить параметр «Z» объектов данными о высоте.
Digitals параметры слоя.


Для этого дважды кликните по слову «Параметры» вкладки «Инфо» и в открывшемся окне параметр «Z» из списка доступных свойств объекта скопируйте в правую часть окна к списку полей доступных для манипуляций.
Теперь выделите все объекты и на вкладке «Инфо» перетащите имя поля содержащее данные о высоте зданий, в данном случае поле «b_height» на поле «Z»

Digitals информация об объекте.

и отпустив кнопку мыши выберите «Скопировать значение параметра»
Digitals копирование значений свойств объектов.


Теперь, выделив какие нибудь объекты и открыв закладку «Правка» в окне просмотра 3D вида сможете увидеть полигоны на разной высоте.
Digitals 3D вид.


Теперь пометьте любой объект и откройте Карта->Слои (это «Менеджер слоев»)
выделенным должен быть слой содержащий полигоны зданий, кликните по нему правой кнопкой мыши и выберите Изменить ID поставьте ID = 1 и для этого же слоя поставьте Тип слоя = «3Д модель», тут же можно подобрать цвет линий.
Digitals Менеджер слоев.


Следующим шагом является создание цифровой модели рельефа (далее ЦМР), которая послужит нам площадкой на которой мы будем создавать 3d модели зданий.
Для этого переключившись в закладку «Сбор» правой панели инструментов обрисовываем все здания полигоном (чтобы все здания были внутри полигона) на основе которого будем создавать ЦМР.
Digitals Рабочее окно.


Выделяем вновь нарисованный полигон и открыв Правка->Свойства меняем значения высот точек полигона кликнув по колонке Z и задав там 0.
После этого помечаем полигон и выбираем ЦМР->Создать ЦМР. Ставим шаг сетки метров 40-50 (все равно у нас не рельеф а площадка для катка :) ) и после этого удаляем полигон, он больше не нужен.
Далее сделаем нашу ЦМР видимой, но не редактируемой, для этого заходим в менеджер слоев ставим ей статус слоя «Видимый» там же можно поменять цвет данного слоя.
Digitals Менеджер слоев.


Вот что у нас получилось…
Digitals ЦМР - Цифровая модель рельефа.


Далее нам нужно разделить все сложные объекты (состоящие из нескольких полигонов) на простые, для этого выделяем все здания и жмем на кнопку «Разделить» (кусачки красные) в закладке «Правка» на правой панели инструментов.
Теперь нужно найти все бракованные объекты (бывают и такие), заходим в Правка->Найти и создаем критерий поиска «Число точек < 5» жмем найти, будут помечены объекты с числом точек меньше 5, и если такие есть удаляем их (кнопка Backspace).
Теперь помечаем все здания и выполняем команду Сервис->Преобразовать->Полигон в 3Д модель.
Возвращаем в менеджере слоев статус Правка слою ЦМР.
Выделяем ЦМР и только ее. В левом нижнем углу должно быть показано число объектов и через слеш 1 (число/1). На правой панели инструментов включаем 3Д вид и запускаем ЦМР->Переприсвоить высоты (у зданий должны появиться стены).
СОХРАНЯЕМ РЕЗУЛЬТАТ! (неужели Вы еще ни разу не сохранились Smile )

Выделяя отдельные объекты. Обратите внимание, что не у всех объектов есть крыши!
Сейчас крыши только у зданий с не более чем 4-мя углами. Для того что бы создать крыши у всех объектов необходимо выполнить скрипт CoverMultiFlatRoofs.
Если Вы еще не делали этого ранее, то и кнопки выполняющей это действие у Вас нет. Для создания кнопки выполняющей это действие проделайте описанные ниже операции.
Выполните Окно->Создать панель инструментов, Впишите имя для вновь создаваемой панели и сохраните ее,  затем кликните правой кнопкой мыши по пустой панельке и Добавить кнопку при этом в правую панель в открывшемся окне вставь команду @Map.CoverMultiFlatRoofs.
Теперь для выполнения этой команды на правой панели инструментов включаем 3Д вид и жмем нашу новую кнопку.
Промежуточный итог в «окне 3D вид» таков.
Digitals 3D модель.


Теперь как последний этап обработки выполняем следующие действия:
В менеджере слоев меняем тип слоя наших зданий на « Полигон/полилиния» и выделив все здания и на правой панели инструментов выбираем вкладку «Правка» и выполняем команду «Реверс» (для исправления направления нормалей), а затем возвращаем нашему слою зданий тип слоя «3Д модель».
3Д модель готова!!! Ее можно экспортировать в Google Earth просто выполнив Файл->Сохранить и выбрав тип файлов Google Earth.
Digitals экспорт в Google Earth kml/kmz.


Перед экспортом обязательно укажите систему координат карты и зону, в данном случае это UTM 39.
Помимо этого программа позволяет создавать kmz файлы с поддержкой LOD для этого Вам нужно установить флажок «Уровни детализации» и настроить их.

Полезные ссылки:
Сайт программы Digitals
Форум пользователей Delta/Digitals