Создана трехмерная модель местности вблизи мексиканского городка Jalpan. Модель создана по аэроснимкам цифровой камеры 3-DAS-1. Загрузить...
Модель полностью создана средствами Delta/Digitals. Начиная от обработки аэросъемки, заканчивая созданием ЦМР и ортотрансформацией снимков.
Распакуйте архив в любой каталог. Откройте файл Mexico.dmf в Digitals. В главном меню включите Вид>Трехмерный затем Вид>Полный. Должна начать загружаться текстура поверхности. После окончания загрузки модель можно вращать (левая кнопка мыши), приближать (колесико мышки), летать над поверхностью (клик правой кнопкой и в контекстном меню включить Свободная камера). Масштаб по высоте также устанавливается в контекстном меню, пункт Установить масштаб по Z.
Для просмотра модели нужно использовать последнюю версию Ged.exe.
В Delta/Digitals реализована поддержка 3D-мониторов Samsung 2233RZ в Windows 7 (32/64bit) и Windows XP (32/64bit). Для работы в стереорежиме требуется видеокарта nVidia Quadro.
В отличие от 3D мониторов Zalman ZM-M220W, которые используют черезстрочное стерео, мониторы Samsung 2233RZ обеспечивают стереорежим OpenGL с переключением страниц, дающий 3D изображение в максимальном разрешении.
Мониторы с черезстрочным стерео проигрывают в разрешающей способности по вертикали, так как четные строки пикселей у них используются для вывода изображения левого снимка, а нечетные - правого. Также они уступают полноценным OpenGL 3D стереомониторам в скорости регенерации 3D изображения при перемещении снимков.
Их преимуществом является более низкая цена, возможность использования любой видеокарты и пассивные стереоочки (без мигания).
Добавлены функции вставки растров и обработки имен файлов
В язык скриптов добавлена функция @Map.InsertRasters позволяющая вставить в карту один или несколько геопривязанных растров в виде активных ссылок (аналог команды меню Вставка|Растровое изображение…).
На вход функции можно подавать имя файла (включая “*”) или список.
Функция не выполняет обновления экрана для показа вставленных растров. Для этого, после нее можно вызвать @Window.ShowSelected.
Также добавлены следующие функции:
@FileExists ИмяФайла
Возвращает 1 если данный файл существует и 0 если нет.
@Map.ClearFilename
Возвращает полное имя файла карты, включая путь, но без расширения.
Удобно использовать если нужно сохранить карту в ту же папку и с тем же именем, но в другом формате: $Name=@Map.ClearFilename @Map.SaveToFile $Name.dxf
@Map.ShortFilename
Возвращает короткое имя файла с расширением.
Удобно использовать если нужно сохранить карту в другую папку с тем же именем и в том же формате: $Name=@Map.ShortFilename @Map.SaveToFile C:\Backup$Name
@Map.ClearShortFilename
Возвращает короткое имя файла карты, без пути и расширения.
Удобно использовать если нужно сохранить карту с тем же именем, в другую папку и в другом формате: $Name=@Map.ClearShortFilename @Map.SaveToFile C:\In4Files$Name.In4
Cуществует также функция @Window.OpenRaster [R] ИмяФайла,
которая открывает растр(ы) для сбора, аналогично команде меню Растр|Открыть, например: @Window.OpenRaster C:\Images\Left.tif @Window.OpenRaster R C:\Images\Right.tif
Добавлен поиск по форуму прямо из программы (меню Помощь|Поиск по форуму…).
В отличие от “родного” поиска форума, Google гораздо лучше обрабатывает сложные запросы, а также находит информацию во внешних DOC/PDF файлах, статьях и т.д.
Для сравнения, результаты поиска фразы: переcчет из шиpоты и дoлготы Поиск форума | Поиск Google
Задание вертикального масштаба для ЦМР|Профиль (базовый)
Вместо использовшегося раньше десятикратного увеличения масштаба по Z при построении базового профиля, теперь можно задать любое другое значение в константе ProfileZScale (Сервис|Настройки|Главная|Константы|ProfileZScale).
Значение можно задавать как в виде фиксированного масштаба, например ProfileZScale=1:100, так и в виде соотношения, например ProfileZScale=10. В первом случае масштаб по Z всегда будет 1:100, а степень растяжения по оси Z будет зависеть от масштаба карты (горизонтального масштаба профиля). Для 1:500 - 5, для 1:1000 - 10 и т.д. Во втором случае будет использовано заданное готовое соотношение масштабов.
Если указать в константе нулевое значение (ProfileZScale=0), то программа будет запрашивать вертикальный масштаб при каждом построении профиля.
В дополнение к анаглифическому стерео в Вид>Трехмерный (описано здесь) в новом Ged.exe в трехмерном просмотре теперь доступно OpenGL стерео с использованием затворных очков. Данный режим аналогичен режиму Сервис>Настройки>Устройства>Очки (OpenGL). И может использоваться при наличии CRT монитора, видеокарты nVidia GeForce2-6,Quadro и затворных LCD очков, либо же LCD 3D монитора с очками nVidia 3D Vision и Quadro видеокарты. В качестве LCD 3D монитора можно использовать Samsung 2233RZ.
Испытание нового стереорежима в трехмерном просмотре проводилось на мониторе Samsung 2233RZ с очками 3D Vision и видеокартой Quadro FX370. Очень хорошо глубина пространства ощущается на новой, созданной в Digitals, 3D модели.
После загрузки архива модели распакуйте все файлы в один каталог и откройте файл Indianapolis2.dmf. Затем включите Вид>Полный, Вид>Трехмерный должны начать загружаться текстуры. Для включения стерео кликните правой кнопкой мыши и включите Стерео>Затворные очки. Если стерео настроено и работает правильно вы увидите двоение изображения. Одевайте стереоочки и наслаждайтесь
В язык скриптов Digitals добавлена возможность обработки событий. Обработчик событий это скрипт, который автоматически вызывается программой каждый раз, когда пользователь выполняет некоторое действие. Написание такого скрипта ничем не отличается от обычного, однако в первой его строке должна быть специальная метка, показывающая, при каком именно событии будет вызываться скрипт. Например, метка %Events.OnCollect указывает, что скрипт будет вызываться после завершения сбора каждого объекта.
Кнопка, в которой присутствует обработчик события, становится нажимаемой. Ее нажатие активизирует обработчик, а отжатие отключает его. Это позволяет, при необходимости, запрограммировать и использовать несколько режимов с разными обработчиками. Если необходимо выполнить какие-то действия непосредственно в момент нажатия кнопки (например установить какие-нибудь настройки), то эти команды нужно поместить в начало текста скрипта - до первой метки определяющей обработчик события.
В программе реализованы следующие события:
%Events.OnCollect - сбор объекта %Events.OnSelect - пометка объекта %Events.OnChange - редактирование точек объекта или значений его параметров %Events.OnParametersChange - изменение значений параметров объекта (на закладке Инфо) %Events.OnAdd - вставка объекта из буфера обмена %Events.OnDelete - удаление объекта карты %Events.OnLayerChange - изменение слоя объекта %Events.OnPointCollect - регистрация точки собираемого объекта
%Events.OnFileNew - создание новой карты %Events.OnFileOpen - открытие карты из файла %Events.OnFileClose - закрытие карты %Events.OnFileSave - сохранение карты
%Events.OnStartup - запуск программы Digitals %Events.OnShutdown - выход из Digitals
Один скрипт (кнопка) может содержать обработчики для нескольких событий (см. пример ниже). Также один обработчик можно назначить сразу нескольким событиям. Для этого нужно перечислить события через запятую в первой строке, например %Events.OnFileNew, OnFileOpen. Для того, чтобы получить имя события, которое обрабатывается в настоящий момент используется функция @EventName.
Для создания обработчика для всех событий стразу можно использовать символ звездочки - %Events.*.
Специальная функция @EventObject позволяет получить номер объекта с которым произошло событие. Например, для события OnCollect, это будет номер только что собранного объекта, а для события OnSelect - номер последнего помеченного. Если помечено несколько объектов и требуется обработка всех, то для этого можно использовать существующую функцию @Map.NextSelected.
Для событий OnFileOpen, OnFileSave и т.д. @EventObject будет содержать номер карты. Поскольку событие OnFileSave вызывается до сохранения карты, обработчик события может запретить сохранение, присвоив переменной $Result значение 1. В этом случае в скрипте необходимо предусмотреть сообщением пользователю с объяснением причины.
Для события OnParametersChange можно использовать функцию @EventParameter, которая возвращает номер измененного параметра (или список номеров, разделенных пробелами).
Пример скрипта:
@Dialog.InfoBox 3000 Активизация скрипта обработки событий %Events.OnCollect
$S=@EventObject @If $S=0 then @Break
$S=@Map.Object[$S].Parameter[-5] @Dialog.InfoBox 3000 Сбор объекта||$S
;
%Events.OnSelect
$S=@EventObject @If $S=0 then @Break
$S=@Map.Object[$S].Parameter[-5] @Dialog.InfoBox 3000 Пометка объекта||$S
;
%Events.OnChange
$S=@EventObject @If $S=0 then @Break
$S=@Map.Object[$S].Parameter[-5] @Dialog.InfoBox 3000 Изменение объекта||$S
Пример обработки события регистрации точки:
Добавляет объект “Точки зйомочної мережі” на каждой собираемой точке полигона:
Константа ExplicationParameter в Сервис|Настройки|Главная позволяет задать номер параметра (или его дескриптор) откуда будет браться название угодий при создании экспликаций.
По умолчанию имя угодия берется из имени слоя объекта (параметр -5), что не всегда удобно, так как часто все угодия находятся в одном слое и различаются только дескриптором CN.
Для того, чтобы имя угодия в экспликации брались из CN, необходимо указать: ExplicationParameter=CN
Вместо номера или дескриптора также можно задать формулу, например: ExplicationParameter=Get(0/-1,P[CN])
(при таком варианте будет отброшен идущий спереди цифровой код)
Формула не должна содержать пробелов, a если они необходимы, то их нужно заменить символом _.
Дополнительно, после формулы можно указать порядок сортировки угодий в экспликации. По умолчанию угодия сортируются по убыванию площади. Для сортировки по коду целевого назначения, константа должна иметь следующий вид: ExplicationParameter=Get(0/-1,P[CN]) Sort:CN
Подключаемые справочники описания слоев и параметров
Подключаемые справочники в формате HTML позволяют создавать описание для каждого слоя и параметра. Описание может содержать текст, изображения, таблицы и т.д. Справочник должен находится в папке \Digitals\Docs и иметь имя соответствующего масштаба, например, 2000.html или 10000.html. Путь к папке со справочниками можно изменить константой HTMLFolder в Сервис|Настройки|Главная|Константы. Это позволит, например, использовать для всех рабочих станций в сети единое описание на сервере.
Запуск окна с описанием выполняется командой меню Помощь|Описание классификатора. Открытое окно справочника автоматически позиционируется на описание соответствующего слоя при пометке объекта или при выборе слоя для сбора. Оно также позиционируется на описание нужного параметра при редактировании параметров объектов на закладке Инфо. Для позиционирования, заголовки соответствующих разделов должны содержать закладку (bookmark) c ID слоя, например: . Для описания параметра, тег должен содержать его ID с префиксом P, например .
Добавлена возможность создания скриптов обработки событий для отдельного слоя. Для создания/редактирования такого скрипта наведитесь в Менеджере слоев на нужный слой и, вызвав контекстное меню, выберите в нем пункт Скрипт обработки событий. В отличие от традиционных скриптов, которые записаны в отдельных TLB файлах, скрипты слоев хранятся в файле с картой (в описании каждого слоя). В остальном, такие скрипты не отличаются от обычных обработчиков событий и создаются по тем же правилам.
Для слоев реализованы события: OnSelect - Пометка объекта OnCollect - Сбор объекта OnChange - Изменение геометрии объекта или его параметров OnLayerChange - Изменение слоя объекта OnAdd - Вставка объекта из буфера обмена
Для создания выноски, перейдите на закладку Сбор, выберите слой Виноска універсальна и соберите линию, первая точка которой находится на предполагаемом месте “полочки” выноски, а вторая точка присоединяется к любому из колодцев. Скрипт автоматически перенесет в выноску все необходимые параметры колодца, а также выберет нужную ориентацию полочки (влево или вправо, в зависимости от ориентации собранной линии). Скрипт также автоматически вынесет на передний план люк, к которому присоединяется выноска.
Аналогичным образом можно создавать скрипты, автоматизирующие перенос параметров в подпись леса и т.д. Также при помощи скрипта можно заполнять параметры собранного объекта значениями по умолчанию либо вычислять их - например значение этажности здания по его высоте.
В новой версии Digitals добавлена возможность перемещения узлов регулярной сетки во время измерения ЦМР. Для активизации данного режима необходимо установить константу FixDEMNodes=0 в Сервис|Настройки|Главная|Константы.
В этом режиме, если мы переместим курсор при измерении текущего узла сетки, то сам узел также сместится после его регистрации. Например, точка регулярной сетки высот попадает на здание или дерево. Чтобы измерить высоту местности в этой точке нам необходимо сместиться в сторону. В обычном режиме (FixDEMNodes=1) при регистрации такой точки координаты узла сетки остаются прежними (т.е. точка остается на здании или дереве), а изменяется только высота. В новом режиме, кроме высоты также будет меняться и положение самого узла. Разумеется, при таком подходе сетка высот уже будет нерегулярная. Но она будет более адекватно отображать рельеф.
Кроме вышеуказанной функции в данном режиме появилась полезная функция для добавления пикетов непосредственно в процессе измерения сетки ЦМР. Если во время регистрации точки удерживать клавишу Alt, то на карте появится отдельный пикет, а курсор вернется к текущей точке ЦМР. Эта функция полезна для измерения характерных точек рельефа без выхода из режима измерения ЦМР.
Экспорт в KMZ был дополнен возможностью создания онлайн карт для Google Earth и Google Maps. Карты могут покрывать огромные территории и при этом отображаться быстро и с высоким качеством. Такие карты можно просматривать через Интернет без необходимости загружать все данные на компьютер пользователя. Реализуется это при помощи механизма уровней детализации (англ. Level of Detail). При этом для каждого объекта создаются несколько представлений, от самого грубого до самого детального. Грубое представление загружается и отображается при малом размере объекта на экране, при приближении к объекту он стает все более детальным. Подробнее смотрите здесь.
Чтобы выполнить экспорт карты с уровнями детализации выполните Файл>Сохранить как…>Google Earth KML/KMZ, в открывшемся окне включите Уровни детализации и нажмите кнопку Настроить…
Экспортировать можно снимки или сканированные карты (добавленные в карту через Вставка>Растровое изображение>Ссылка), подписи карты, 3D модели, непосредственно карту и карту, врисованную в снимки (гибрид).
При просмотре в 3D, чтобы заклонить карту или камеру, кликните по окну с картой и используйте клавиши Shift+стрелки или Ctrl+стрелки, либо элементы управления в правом верхнем углу окна карты.
Обратите внимание, что главный KMZ файл всегда имеет небольшой размер (несколько килобайт) при том, что карты загружаются достаточно большие (3D карта занимает около 130 Мб). При просмотре онлайн карты загружаются только видимые в данный момент фрагменты карты с соответствующим уровнем детализации. Также обратите внимание, что векторная карта отображается в Google Earth точно так же как в Digitals, со всеми условными знаками и заданными шрифтами. Так происходит потому, что векторная карта при экспорте растеризируется.
Экспорт с уровнями детализации позволяет легко создавать онлайн карты, используя широкие возможности формата KML и средства Google Maps API. Вы можете создавать карты, подобные картам Google и наполнять их, используя Digitals. Вы можете разместить карту в Интернете либо своей локальной сети. Кроме того экспорт с уровнями детализации - единственная возможность просмотра огромных трехмерных карт. В данный момент готовится 3D карта города Винницы (около 50 000) зданий, которая будет доступна для просмотра онлайн.
Добавлены команды подготовки 3D объектов, оптимизации геометрии и текстур, разбивки больших 3D карт на фрагменты, подготовки к экспорту в Google Earth с поддержкой уровней детализации. Некоторые из нижеописанных команд появились ранее, но до сих пор не были описаны.
Данные команды являются функциями скриптов Digitals и могут выполнятся последовательно в сочетаниями с другими действиями. Это позволяет максимально автоматизировать процесс подготовки 3D объектов. Подробнее здесь.
После имени функции следуют ее параметры. Необязательные параметры помещены в кваратные скобки. Во многих функциях используется необязательный параметр [ShowInfo], включающий вывод на экран диалогового окна с результатами выполнения функции. Показ этого сообщения останавливает выполнение скрипта и поэтому не рекомендуется при использовании в скрипте нескольких, последовательно вызываемых, функций.
Если в карте имеются помеченные объекты команды применяются к ним, иначе ко всем 3D объектам карты. 3D объекты карты должны находится в слоях с типом 3D модель.
Исправляет несовмещение точек с точками, точек с ребрами и точек с гранями внутри и между смежными 3D объектами.
Accuracy - м, максимальное расстояние между точками, точками и ребрами, точками и гранями при котором будет выполнятся совмещение.
Пример: @Map.Align3DObjects 0.1 ShowInfo - совмещение в диапазоне 10 см, результат работы функции будет показан.
@Map.Align3DObjectsBottom [Range] [ShowInfo]
Перемещает нижние точки смежных 3D объектов на одну высоту. Команда выравнивает основание смежных 3D объектов. Высота основания определяется самой нижней точкой. Вызывается автоматически внутри функции объединения смежных 3D объектов @Map.Merge3DObjects.
Range - м, диапазон поиска нижних точек, если не задан - определяется автоматически. Вручную этот параметр следует задавать только, если изменяются высоты точек, которые должны оставаться неизменными.
Пример: @Map.Align3DObjectsBottom - выравнивание основания смежных 3D объектов с автоматическим поиском точек, составляющих основание.
Выравнивание основания смежных 3D объектов (вид сбоку).
@Map.Scan3DObjects Step
Объединяет смежные 3D объекты, используя алгоритм Marching cubes. Функция может быть применена для упрощения сложных объектов, например моделей деревьев.
Step - м, задает шаг сетки результирующего объекта. Чем ниже это значение тем точнее будет объединенный объект, но тем больше полигонов будет он содержать.
Объединение смежных объектов с получением регулярной сетки.
Уменьшает число точек и граней 3D объектов. Команда вызывается до объединения смежных 3D объектов и до генерации текстур. Используется для получения низкополигональных моделей зданий, отображаемых при грубом уровне детализации. Надстройки и сложные крыши зданий преобразуются в плоские, контуры (отпечатки) зданий также упрощаются. Такие модели обычно не текстурируются а раскрашиваются близкими к текстурам цветами (см. команду @Map.MergeTextures). После упрощения 3D объекты можно объединить командой Map.Merge3DObjects.
MinVolume - м3, 3D объекты с объемом меньше указанного будут отброшены.
Accuracy - м, определяет максимальное отличие контура (отпечатка) упрощенных объектов от их исходного контура.
Пример: @Map.Simplify3DObjects 5 0.5 ShowInfo - упрощение 3D объектов. Объекты с объемом меньше 5 м3 выбрасываются. Упрошенный контур объекта будет отличаться от исходного не более чем на 50 см. После выполнения функции будет показана информация о результатах ее работы.
Упрощение 3D объектов.
@Map.Merge3DObjects [ShowInfo]
Объединяет смежные 3D объекты, удаляет невидимые грани и части граней, уменьшает площадь поверхностей 3D объектов. Используется для формирования зданий. Все соприкасающиеся объекты считаются принадлежащими одному зданию. Команда выполняет оптимизацию геометрии 3D объектов. Уменьшение площади поверхности объектов означает уменьшение размеров текстур при последующей их генерации. Кроме того уменьшается число объектов в карте. Объекты составляющие здание объединяются в один объект, которому можно назначить семантические данные, например, адрес.
Уменьшает число текстур, объединяя изображения текстур каждой грани 3D объекта в одно или несколько изображений. Может уменьшать разрешение текстур, что используется для получения представлений объектов на грубых уровнях детализации. Используется для оптимизации 3D моделей. После выполнения генерации текстур, файл изображения формируется для каждой грани 3D объекта, при этом захватываются области за пределами грани. Функция упаковывает изображения всех граней в одно или несколько изображений, оптимально размещая текстуры и отбрасывая ненужные части.
MaxTextureSize - пикс, максимально допустимый размер объединенного изображения. Для любой видеокарты есть ограничение на максимальный размер текстуры. Для современных видеокарт это 8192 пикс. Значение по умолчанию 4096.
MinGSD - м/пикс, лучшее допустимое разрешение текстур. Исходное разрешение текстур не постоянно и зависит от угла съемки грани объекта. Текстуры с разрешением лучшим, чем указано в MinGSD будут ресемплированны до заданного значения. Текстуры с разрешением хуже или равным MinGSD остаются без изменений. Используется для получения упрощенных представлений объектов на грубых уровнях детализации.
ColoredFaces - если параметр указан вместо текстурирования все грани раскрашиваются. Цвет каждой грани определяется средним цветом ее исходной текстуры.
Пример: @Map.@Map.MergeTextures 4096 0.15 - объединение текстур. Максимально допустимый размер выходных текстур 4096 пикс. Разрешение текстур бедет уменьшено до 15 см.пикс.
Объединенные текстуры и текстурированная модель.
@Map.RemoveFaceBlinking
Корректирует геометрию 3D объектов для устранения мерцания перекрывающихся граней. Параллельные накладывающиеся грани при этом немного раздвигаются. Рекомендуется использовать вместо данной функцию @Map.Merge3DObjects - эта функция не просто просто устраняет мерцание накладывающихся граней, а удаляет ненужные грани и части граней.
@Map.CoverMultiFlatRoofs
Генерирует грани крыш для multiflat 3D объектов. Технология сбора multiflat объектов подразумевает создание контура основания объекта без формирования граней крыши. Так как multiflat объекты содержат более 4-х точек в полигоне контура основания, для формирования граней крыш необходимо выполнить триангуляцию этого полигона. Что и выполняет данная функция. Перед вызовом функции необходимо спроецировать нижние точки основания объекта на модель рельефа командой ЦМР>Переприсвоить высоты. Это формирует стены зданий (при условии, что стены не были сформированы в процессе сбора 3D объектов).
Устанавливает диапазоны видимости слоев карты согласно уровням увеличения Google maps. Используется для разделения объектов по уровням увеличения. Например, на максимальном увеличении плана города должны быть показаны контуры зданий, на предыдущих уровнях достаточно показать лишь контуры кварталов. При этом диапазон видимости слоя зданий устанавливается соответствующим максимальному уровню увеличения Google maps.
MinLevel, MaxLevel - минимальный и максимальный уровни увеличения для которых расчитываются диапазоны видимости.
FromLayerNumber - номер первого слоя для которого выполняется установка диапазона видимости. Этот слой будет соответствовать уровню MinLevel. Следующий по порядку слой будет соотвесттвовать MinLevel+1 и так до MaxLevel. Если параметр FromLayerNumber не задан в конец списка будут добавлены новые слои и диапазоны видимости будут установлены для них. Для слоев с измененным диапазоном видимости к имени добавляется номер соответствующего уровня увеличения.
Latitude - широта центра карты, если не задана используется широта экватора. Для более точного расчета диапазона видимости слоев согласно уровням увеличения рекомендуется указывать реальное значение широты .
Пример: @Map.SetLayersVisibleRanges 15 19 12 49.3 - установка диапазонов видимости для слоев с номерами от 12 до 16. Если в карте меньше 16-ти слоев (исключая служебные) в конец списка будут добавлены новые слои. Уровни увеличения от 15 до 19. Широта центра карты 49.3 гр.
Полностью аналогична функции @Map.SetLayersVisibleRanges только устанавливает диапазоны видимости не слоев а параметров карты. Используется для размещения подписей карты в различных уровнях увеличения. Например, на максимальном уровне на плане города нужно подписывать каждое здание, на предыдущем уровне достаточно вынести подписи только угловых зданий кварталов.
@Map.InsertGoogleTileFrames MinLevel MaxLevel
Вставляет в карту рамки, согласно разбивке на тайлы в Google maps и заданным уровням увеличения. Используется, например, для нарезки карты на фрагменты командой @Map.CutMapByFrames. Для кажого уровня увеличения создается отдельный слой.
Делит карту на фрагменты и сохраняет каждый фрагмент в отдельный файл. Рамки, согласно которым производится нарезка карты, должны быть помечены перед вызовом команды. Используется при обработке 3D карт больших территорий. Такие карты проще нарезать на части и обрабатывать каждый фрагмент отдельно. Нарезка на части не разделяет смежные 3D объекты, составляющие здание. Все смежные объекты попадают в один фрагмент, в котором находится большая их часть.
FileNameParamNumber - номер параметра рамок, содержащий имена выходных файлов. Рамки должны содержать уникальный параметр, который будет использоваться для именования DMF файлов фрагментов. Это может быть номер фрагмента, или более сложное имя.
OutFolder - каталог сохранения выходных файлов.
Пример: @Map.CutMapByFrames 12 d:\Out - нарезка карты на фрагменты. Имена выходных файлов будут взяты из параметра 12. Файлы фрагментоы будут сохраненны в каталог d:\Out. Рамки, по которым выполняется нарезка, должны быть помечены перед вызовом команды.
@Map.Show3DObjectsInfo
Показывает информацию о 3D объектах карты. Выводится количество 3D объектов, число испорченных 3D объектов, общая площадь поверхности и суммарный объем объектов.
Fix3DObjects [NoFix] [ShowInfo]
Исправление геометрии неправильных 3D объектов. Исправляются только простые случаи. Правильный 3D объект должен состоять из списка точек граней, где на каждую грань приходится ровно 5 точек, за которыми следует разрыв. После последней грани разрыв отсутствует.
NoFix - не выполнять коррекции, просто показать число испорченных объектов.
@Map.CheckTextures [DeleteUnused] [ShowInfo]
Поиск неиспользуемых и утерянных текстур. Неиспользуемые текстуры увеличивают размер источника текстур (файла или каталога текстур). Утерянные текстуры - это ссылки на отсутствующие файлы текстур.
DeleteUnused - если задано, неиспользуемые текстуры будут удалены из источника текстур.
Пример: @Map.CheckTextures DeleteUnused ShowInfo - поиск неиспользуемых и утерянных текстур. Неиспользуемые текстуры будут удалены из файла или каталога текстур. Результат выполнения функции будет показан.
@Map.ExtractTexturesToFolder
Распаковывает текстуры карты из DTX или PAK файла в каталог. Имя каталога совпадает с именем карты с добавлением строки (Textures).
@Map.PackTexturesFromFolder
Упаковывает текстуры карты в DTX файл из каталога текстур. Имя файла текстур совпадает с именем карты. Расширение файла текстур DTX (Digitals TeXtures).
@Window.GenerateTextures [pak] [jpg]
Извлекает текстуры 3D объектов из снимков. Перед вызовом функции требуется открыть снимок при помощи команды Растр>Открыть. Путь к файлу растра укажет программе каталог для поиска остальных снимков. Поиск производится в указанном каталоге и всех подкаталогах. Снимки должны иметь геопривязку в системе координат карты, либо в другой известной СК, с заданным датумом. Геометрия 3D объектов должна быть полностью сформирована перед вызовом этой команды (см. @Map.CoverMultiFlatRoofs, @Map.Simplify3DObjects, @Map.Merge3DObjects). После генерации текстур граней их необходимо объединить командой @Map.MergeTextures.
pak - упаковать все полученые текстуры в один файл.
jpg - сохранять текстуры в JPEG формате, иначе - BMP.
Пример: @Window.GenerateTextures pak - генерация текстур с поиском снимков в каталоге открытого растра. Извлеченные текстуры граней будут сохранены в BMP формате внутри одного файла.
@Merge3DMaps [ShowInfo]
Объединяет открытые 3D карты. Копирует все 3D объекты и их текстуры в первую карту. Все скопированные 3D объекты помещаются в один слой, содержащий в своем имени имя карты - источника. Используется для формирования 3D карт с объектами представленными в различных уровнях детализации. Получить низкополигональные представления объектов можно, используя команду @Map.Simplify3DObjects, уменьшить разрешение текстур можно при помощи @Map.MergeTextures. В объединенной 3D карте каждый слой 3D объектов должен соответствовать своему уровню увеличения и иметь установленные при помощи команды @Map.SetLayersVisibleRanges диапазоны видимости.
Преобразовывает имена тайлов Google вида qrst к XYZ, где X-позиция фрагмента по горизонтали, Y-по вертикали, Z-уровень увеличения (Zoom). Также выполняется преобразование к заданному типу изображения (PNG или JPEG).
SourceFolder - каталог исходных файлов. Каталог должен существовать.
DestFolder - каталог результирующих файлов. Если каталог не существует, он будет создан. Если каталог с таким именем присутствует, все файлы из него перед выполнением команды будут удалены.
Если в именах каталогов встречаются пробелы, имена следует брать в кавычки. Например, “D:\1 Out”.
KMZ - если задано, в каталоге SourceFolder отбираются только kmz файлы. Иначе файлы изображений jpg, png, bmp. Если в качестве входных указаны kmz файлы, они должны содержать изображение внутри.
PNG/JPG - задает формат выходных изображений. Нужно указывать либо PNG либо JPG.
{X-Y-Z} - задает маску имени выходного файла. Маска должна заключаться в фигурные скобки обязательно содержать буквы X,Y и Z, обозначающие места вставки позиции тайла по горизонтали, по вертикали и уровень увеличения тайла соответственно.
Функция используется для подготовки фрагментов изображений для использования их в пользовательских картах Google maps.
Пример: @DecodeGoogleTiles D:\Src D:\Dst KMZ PNG {tileX_Y_Z} - получение изображений из kmz файлов во входном каталоге D:\Src и запись в выходной каталог D:\Dst. Формат выходных файлов png. Имя тайла задается маской {tileX_Y_Z} и будет иметь вид, например, tile12_20_14.
В новой версии программы добавлена возможность записи файлов формата XML (Файл|Сохранить как…, XML), введенного с 15 мая для сдачи кадастровой информации в ДЗК. Для создания XML-файлов используется шаблон XMLNormal.dmf, который должен находиться в папке \Digitals\Templates.
Этот же шаблон используется программой при открытии XML-файлов (Файл|Открыть…, XML).
Принцип создания XML файлов в Digitals примерно такой же как и при создании In4. Необходимо создать новую карту на основе шаблона XMLNormal, затем собрать в соответствующих слоях контура участков, угодий, смежников и т.д. Для сохранения в формат XML нужно вызвать команду главного меню Файл|Сохранить в XML. При сохранении, программа автоматически добавит объекты кадастровой зоны, квартала и реквизитов обменного файла. Также, при сохранении будут заполнены все значения параметров из шаблона XML.csv. В XML.csv удобно занести типовые значения параметров, которые редко изменяются.
Более быстрое и точное построение сетки ЦМР для ортофото
В процессе ортотрансформирования программа предварительно выполняет построение сетки ЦМР, используя всю векторную информацию в карте. Высоты в узлах сетки вычислялись при помощи интерполяции, что приводило к задержке по времени, а также могло вызывать искажения на ортофото при резких перепадах высоты (мосты, насыпи и т.д.).
Теперь, помимо интерполяции также можно использовать построение сетки по TIN:
Если эта опция активна, то программа сначала создает по всей имеющейся на карте информации сеть треугольников (TIN), а затем преобразует ее в сетку ЦМР для трансформирования. В большинстве случаев это приводит к ускорению ортотрансформирования и к улучшению точности выходного ортофото (особенно при наличии подробных структурных линий). Поскольку построение сетки по TIN выполняется гораздо быстрее интерполяции, теперь можно уменьшать в настройках шаг сетки для ортофото, повышая его качество. Ограничением является лишь наличие достаточного количества оперативной памяти.
Процесс подготовки цифровой модели рельефа (ЦМР, пикеты, структурные линии и т.д.) для нового режима не отличается от традиционного.
В Вид>Трехмерный перемещение мышки с зажатой левой кнопкой вызывает вращение сцены. Прежние версии Digitals вращали карту относительно ее центра. Чтобы рассмотреть часть карты, удаленную от центра нужно было включать свободную камеру и подлетать к нужной точке. Вращение сцены в таких случаях работало плохо.
В новой версии центр вращения - это точка пересечения вектора взгляда камеры и горизонтальной плоскости, расположенной на средней высоте карты. Таким образом сцена теперь вращается относительно точки на которую смотрит камера. Это позволяет комфортно рассматривать объекты в любой части карты при любом увеличении.
Новая возможность позволяет использовать 3D объекты в виде символов в трехмерной карте. Один и тот же объект при этом отображается многократно в указанных точках, с заданным масштабом и разворотом.
Опция полезна для тиражирования в карте однотипных объектов, таких как деревья, столбы, скамейки в парках и проч.
Для добавления в карту 3D символа:
Создайте новый слой типа 3D модель.
После имени слоя в скобках укажите ключевое слово symbol3D и путь к файлу, содержащему символ, например
Создайте карту с объектами, которые образуют 3D символ и запишите ее по указанному в имени слоя пути. Карта целиком представляет собой один символ и может быть в DMF или KMZ формате.
В исходной карте соберите точки, указывающие места вставки 3D символов. Точки должны находится в слое, который мы создали в п.1.
Включите Вид>Трехмерный. После загрузки всех текстур в точках вставки должны появится 3D символы.
Для каждого символа можно указать его масштаб отображения и разворот относительно вертикальной оси. Для этого для слоя 3D символов должны быть доступны 2 (или более) вещественных параметра. Первый доступный параметр слоя трактуется как масштаб символа, второй доступный параметр обозначает разворот символа.
Чтобы пометить 3D символ в трехмерном просмотре нужно кликать по точке вставки, которая находится в его подошве.
В новой версии генератора отчетов добавлена возможность устанавливать пароль на редактирование шаблонов. Пароль допускает использование шаблона для генерации документов, редактирование документов, полученных на основе такого шаблона. Но просмотреть или отредактировать сам шаблон не зная пароля будет невозможно.
Устанавливается пароль при помощи команды Дизайнер|Защита шаблона. В появившемся окне вводим пароль и нажимаем ОК, после чего шаблон сохраняется в шифрованном виде и его уже нельзя будет открыть старой версией программы или другими программами, использующими FastReports. Для снятия пароля используем эту же команду, вводим текущий пароль и в появившемся окне для ввода пароля поле пароля оставляем пустым и нажимаем ОК.