Новые возможности программы

Получение атрибутов квартала с публичной кадастровой карты

Функция @Map.GetPublicMapQuarterInfo $X $Y возвращает данные о квартале с публичной кадастровой карты Украины по любой, находящейся внутри него точке. Параметры функции - координаты точки в системе координат карты.

Функция возвращает пустое значение, если на публичной карте нет информации о квартале. При наличии информации, вернет список значений публично доступных атрибутов: код КОАТУУ, номер зоны, номер квартала.

Пример скрипта, использующего @Map.GetPublicMapQuarterInfo

[i]$SO=@Map.SelectedObject
@if $S0=0 then @Break Пометьте объект
$X=@Map.Object[$SO].Parameter[-4]
$Y=@Map.Object[$SO].Parameter[-3]
$Res=@Map.GetPublicMapQuarterInfo $X $Y
@if $Res= then @Break Информация не найдена
@Dialog.Message $Res

[/i]
Результат:
КОАТУУ=1823181800
Зона=01
Квартал=001

Доработка системы условных знаков (Карта|Условные знаки)

Богатая фантазия разработчиков ДСТУ “Умовні позначення графічних документів містобудівної документації”, придумавших новые нетрадиционные условные знаки, заставила нас серьезно напрячь извилины :slight_smile:

Изменения коснулись следующих типов условных знаков:

Одиночный

Добавлена опция Посредине. Обычный одиночный условный знак рисуется в каждой точке полигона/полилинии. Знак с отметкой Посредине рисуется один раз в центре объекта для полигонов и посередине длины для незамкнутых полилиний.

Линейный

В линейный условный знак можно добавлять значения текстовых параметров объекта (кнопка Т).

Площадной

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

Линейно-ориентированный

Добавлена опия Посредине. Стандартный линейно-ориентированный условный знак рисуется в каждой точке объекта, например, стрелки линии электропередач. Знак с отметкой Посредине рисуется в центре каждой линии объекта (пример).

Штриховка абсолютная и штриховка относительная

Добавлена опия Посредине. Знак штриховки с такой отметкой штрихует не весь полигон, а его половину, разделенную диагональю. Если кроме линий, задающих направление и расстояние штриховки, знак содержит окружности, прямоугольники и другие элементы, то они будут отображены посередине диагонали. Диагональ строится от первой точки полигона до его дальнего угла. Изменив порядок точек объекта (команда Начать отсюда из контекстного меню точки) можно изменить диагональ и форму заштрихованной области.

Шаблони для містобудування відповідно до ДСТУ Б Б.1.1-17:2013

Для використання всіх можливостей цього шаблону потрібна версія Digitals (Ged.exe) від 11.03.2016 або більш свіжа.

Завантажити 1000(MB).dmf >>

Завантажити всі шаблони (1:500 - 1:200,000) >>

Скопіюйте шаблон у папку \Digitals\Templates та перезапустіть Digitals. Для створення нової карти на базі цього шаблону натисніть на стрілку поряд з білим листком (кнопка Создать у верхньому лівому кутку вікна програми).

Получение адреса из Яндекс.карты (обратное геокодирование)

Функция скриптов @Map.GetYandexMapInfo X Y [Lang] возвращает из Яндекс.карты адрес точки (X,Y). В карте должен быть задан датум. Аргумент Lang задает язык возвращаемых топонимов. Список поддерживаемых значений:
ru_RU — русский;
uk_UA — украинский (по умолчанию);
be_BY — белорусский;
en_US — американский английский;
tr_TR — турецкий (только для карты Турции).

Первая строка результата - кол-во пар “ключ-значение”, остальные строки - список пар “ключ-значение” в кодировке UTF-8.
Пример результата:
6
house=4
street=Набережна вулиця
locality=Іллінці
area=Іллінецький район
province=Вінницька область
country=Україна

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

$SelL=@Map.Selected.List @Text[1].Text $SelL $LC=@Text[1].Count @if $LC=0 then @Break Нет помеченных объектов $I=0 @Progress.Start $LC Загрузка %Loop $I=$I+1 $MON=@Text[1].Line[$I] $XYZ=@Map.Object[$MON].Center $X=@StringPart 1 $XYZ $Y=@StringPart 2 $XYZ $S=@Map.GetYandexMapInfo $X $Y $S=@UTF8ToString $S @if $S=0 then @Goto %Next @Text[2].Text $S $LC2=@Text[2].Count $J=1 %Loop2 $J=$J+1 $S=@Text[2].Line[$J] $ParamName=@StringPart 1=$S $ParamVal=@StringPart 2=$S $LID=@Map.Object[$MON].Layer $P=@Map.Parameters.FindByName $ParamName @if $P<>0 then @Goto %Continue $P=@Map.Parameters.Add 757500$J 5 $ParamName %Continue $VP=@Map.Layers.GetValidParameters $LID @Map.Layers.SetValidParameters $LID $VP $P @Map.Object[$MON].Parameter[$P] $ParamVal @if $J<$LC2 then @goto %Loop2 %Next $Canceled=@Progress.Canceled @if $Canceled=1 then @Break @Progress.StepBy @if $I<$LC then @Goto %Loop @Progress.Stop @Window.Refresh

Для работы функции необходимы библиотеки OpenSSL, см. вложение
OpenSSLdll.zip (635 KB)

Совместимость с актуальными требованиями НКС

При открытии и сохранении XML-файлов код КОАТУУ (10 знаков) переносится в номер кадастровой зоны с объединением в формате xxxxxxxxxx:xx. С 24.06.16 НКС принимает файлы именно в таком виде.

Изменена схема валидации XML-файлов

Схема валидации XML-файлов изменена под актуальные требования НКС. Много ранее обязательных тегов теперь считаются необязательными. Из основных это кадастровый номер участка и реквизиты смежников.
Для использования новой схемы замените Digitals\XMLCheck\XMLSchema.xsd файлом из вложенного архива.
XMLSchema.zip (12.3 KB)

Выделение параметров на закладке Инфо разным цветом

Для группировки параметров по цветам создайте в папке \Digitals файл Parameters.ini следующего формата:

#D8ADA2:7000213,7000214
#D8A2B1:7000216,7000217
#B5A2D8:7000540-7000560
#A2D8CA:7000562-7000565

Первое значение в каждой строке задает номер цвета (который удобно выбирать, например на сайте https://rgbcolorpicker.com/ ), а дальше после двоеточия перечисляются через запятую коды (ID) параметров, которые необходимо заливать этим цветов. Также можно задать диапазон значений кодов через дефис.

Изменения вступят в силу после перезапуска Digitals.

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

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

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

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

Пример комбинации линейного УЗ слоя с площадным УЗ из параметра Тип рослинності >>

Также добавлена возможность, вставки в любой условный знак, другого условного знака, задаваемого списковым параметром. Для этого нужно вставить в условный знак элемент Текст, ссылающийся на определенный параметр (заданный по ID). А затем, в Менеджере параметров присвоить параметру статус Скрытый. В этом случае, вместо текста спискового параметра будет отображаться его условный знак.

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

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

Для изображений, которые имеют более трех цветовых каналов, можно выбрать какие из них будут отображаться на экране (DIPEdit|Вид|Выбрать каналы…). Выбор сохраняется в файл RGB.map в папке с растрами и впоследствии применяется при открытии в Digitals всех изображений из этой папки.

Файл RGB.map содержит строки вида R:4 G:2 B:3, которые задают номера каналов (bands) исходного изображения, отображающиеся в цветовом RGB-пространстве монитора. Если RGB.map имеет более одной строки, то цветовые пресеты можно переключать в программе Ged комбинациями клавиш Shift+PgDn и Shift+PgUp.

Например, для четырехканального растра, содержащего дополнительный инфракрасный канал, RGB.map может выглядеть так:

R:1 G:2 B:3
R:4 G:2 B:3

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

Створення обмінного xml-файлу зон обмеженнь

Розроблений шаблон для створення обмінного xml-файлу зон обмеженнь. Цей спеціальний шаблон, аналогічно з шаблоном для меж адміністративно-територіальних одиниц, не повинен використовуватись для створення обмінних файлів на земельні ділянки.
ПКМУ №1051 містить опис даних, приклад файлу в приєднаному архіві, якій потрібно розпакувати в папку Digitals.

XML

Расчет объема между двумя TIN или сетками ЦМР (ЦМР|Объем)

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

Каждая сетка ЦМР предварительно строится по своему набору исходных данных. Например, одна ЦМР строится для поверхности основания, вторая - для поверхности отвала. Либо одна ЦМР строится на начало месяца, вторая - на конец.

ЦМР должны быть полностью идентичными. Одинаковый шаг, количество точек и т.д. Для этого нужно иметь две карты, ограниченные одинаковым полигоном (обрезанные по одному и тому же полигону). Дальше в каждой из них нужно создать ЦМР с заданным (одинаковым) шагом.

Для расчета объема нужно пометить полигон, обозначающий границу расчета, и выполнить команду ЦМР|Объем. Программа автоматически найдет обе ЦМР, размах которых перекрывает полигон, и вычислит объем между ними.

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

Расчет объема между двумя TIN-поверхностями

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

Если пометить TIN, то его объем сразу будет показан на закладке Инфо правой панели в параметре с кодом -1 (Длина/Объем). Это объем от горизонтальной опорной плоскости, проходящей через самую нижнюю его точку. В параметре с кодом 0 (Площадь) для помеченного TIN выводится трехмерная площадь, которая равна сумме пространственных площадей всех его треугольников. Двумерную площадь помеченного TIN показана в строке статуса программы в ячейке S. Она вычисляется как сумма проекций площадей треугольников на горизонтальную плоскость. Для правильного вычисления объема двумерные площади двух TIN должны совпадать, так как расчет выполняется по всем треугольникам.

Cмотреть обучающее видео >>>

Режим мигания

При наличии в карте двух сеток или TIN можно активировать режим мигания (кнопка Светофор на верхней панели), который будет работать в трехмерном виде (Вид|Трехмерный). Он позволяет наглядно оценить разницу между двумя поверхностями.

Шаблон “Кроки межових знаків”

viewtopic.php?f=1&t=19646

Работа с открытыми реестрами

В Digitals добавлен новый пункт меню Реєстри, который находит и загружает информацию из публичных реестров Украины. Подключены реестры земельных участков (поиск по кадастровому номеру), населенных пунктов (КОАТУУ) и юридических лиц (ЄДРПОУ).

Проверка валидности XML-файлов или строк

Функция @XML.Valid XMLStringOrFileName возвращает “1” если аргумент - валидный XML-файл или валидная XML-строка. Иначе возвращается “0”

Примеры скриптов, использующего @XML.Valid


;Проверка валидности файла
$FN=@Dialog.OpenFile *.xml
$if $FN= then @Break Не выбран файл
$R=@XML.Valid $FN
@if $R=1 then @Dialog.Message файл $FN валидный
@if $R=0 then @Dialog.Message файл $FN не валиден


;Проверка валидности строки
@Map.DeselectAll
@Map.SelectLayer ID70005
$SO=@Map.SelectedObject
@if $SO=0 then @Break Не найден участок
$S=@Map.Object[$SO].Parameter[ID7000500]
@if $S= then @Break Адрес участка не заполнен
$R=@XML.Valid $S
@if $R=0 then @Dialog.Message Адрес участка не валиден.
@if $R=1 then @Dialog.Message Адрес участка валиден.

Скрипт для перерахунку растрів в іншу систему координат

Скрипт забезпечує масовий перерахунок всіх растрових зображень з системи СК63 в УСК2000 чи МСК. Для цього необхідно вказати папку де знаходяться зображення в системі СК63 та вибрати датум в який їх необхідно перерахувати. Для перерахованих зображень автоматично створюється нова папка. Растри перераховуються в систему MSK-XX, яка вибрана у меню Реєстри|Вибір регіону).

@SetDefaultImageDatum SK63
$DestDatum=@ActiveMSK
$V=@Version
@If $V>=42881 then @Goto %Start
@Dialog.Message Цей скрипт потребує оновлення программи
@ExecuteMenu HelpAbout
@Break
%Start:
$SourceDir=@Dialog.SelectFolder Оберіть папку з растрами в СК63
@if $SourceDir= then @Break
$DestDatum=@Dialog.Ask В який датум перерахувати растри? Default=$DestDatum
@If $DestDatum= then @Break
$L=@Calc length(“$SourceDir”)
$DestDir=$SourceDir ($DestDatum)
@Text[2].Clear
@Text[1].FolderListTree *.tif $SourceDir
$FC=@Text[1].Count
@if $FC=0 then @Break Не знайдено tif-файлів в $SourceDir
@Text[2].Add Папка вхідних зображень: $SourceDir
@Text[2].Add Папка трансформованих зображень: $DestDir
@Text[2].Add
$I=0
%LoopFile
$I=$I+1
@FileNew
@Map.Datum $DestDatum
$FN=@Text[1].Line[$I]
$GSD=@GetImageGSD $FN
$BPP=3
$BPP2=@GetImageBitsPerPixel $FN
@if $BPP2=8 then $BPP=1
@Map.InsertTriangulation $FN
$RP=@Calc copy(“$FN”,$L+2,1000)
$RP=@DequoteText $RP
$PC=@StringPartCount \ $RP
$SF=
@if $PC<2 then @Goto %Continue1
$J=1
%LoopPart
$SF2=@StringPart $J$RP
@if $SF2<> then $SF=$SF$SF2
$J=$J+1
@if $J<$PC then @Goto %LoopPart
%Continue1
@OrthoRectification $GSD $BPP $DestDir$SF
@CloseMap
@Text[2].Add Оброблено $FN
@Goto %Continue2
%IgnoreRaster
@Text[2].Add Проблема з обробкою $FN
%Continue2
@CloseMap
@if $I<$FC then @Goto %LoopFile
@Text[2].Save $SourceDir\OrthoRect.log
@Run notepad.exe $SourceDir\OrthoRect.log
@Run $DestDir

Додатково:

Використання готових скриптів - facebook.com/vinmap.net/pos … 6725161000

Меню Run для запуска скриптов и внешних приложений

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

Позволяет запускать внешние приложения с передачей им информации из текущей открытой в Digitals карты. Это полезно как для разработчиков, так и для обычных пользователей. Разработчик может, например, написать специализированное приложение, которое выдаст из базы данных информацию по помеченным объектам карты. А пользователь может, например, добавлять в меню команды для открытия текущего XML-файла в блокноте или текущего открытого растра в DIPEdit.

Все команды меню Run описываются в файле Ged.mnu в папке Digitals, по одной в каждой строке. Если у вас нет, такого файла, то создайте его в блокноте и добавьте в него, например, такую строчку:

Блокнот Notepad.exe &MapFile

После запуска Digitals у вас появится пункт меню Run|Блокнот, при запуске которого текущая карта (XML/In4 и т.д.) будет открыта в блокноте Windows.

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

Блокнот Notepad.exe &SaveSelection,Temp.txt,6

Аналогично можно передать имя открытого в карте растрового файла, например:

DIPEdit DIPEdit.exe &RasterFile

В меню Run также можно добавлять скрипты из библиотеки. Например,если вы сохраните в библиотеку скрипт трансформирования растров из предыдущего сообщения под именем TransformRasters, то строка для него будет выглядеть так:

Трансформирование %Library.TransformRasters

Дополнительно:

Технология Digitals Exchange

Вибір кольорів при створенні тематичних карт

Додали можливість вибору кольору при створенні тематичних карт (Карта|Создать тематический вид, Вид|Тематический). Це корисно, коли тематичний параметр містить числові значення. Для цього треба вказати літеру бажаного кольору (R - червоний, G - зелений, B -
синій, C - циан, M - фіолетовий, Y - жовтий) у константі ThematicColor. Більше значення параметру дасть більшу насиченість кольору.

Також можна вказати пару кольорів, наприклад RG. При цьому, мінімальне значення параметру буде яскраво червоним, а максимальне яскраво зеленим з поступовим переходом. Значення RGB зробить градієнтний перехід від червоного до зеленого через синій.

Також можна створювати різноманітні кольорові палітри задаючи діапазон кольорів у форматі HSV. Наприклад, ThematicColor=0-120 дасть перехід від червоного до зеленого через жовтий, а ThematicColor=360-120 від червоного до зеленого через синій. Повна шкала HSV лежить в діапазоні 0-360 (від червоного до червоного).

Ті, хто часто створює тематичні вигляди за різними параметрами, можуть використати скрипт, який виводить діалог вибору кольору:

$S=@Dialog.Select Цвет градиента|R - Красный|G - Зеленый|B - Синий|C - Циан|M - Фиолетовый|Y - Желтый|RG - Краснозеленый|RB - Красносиний|BG - Синезеленый|RGB|120-360 Зеленый-Синий-Красный|0-120 Красный-Желтый-Зеленый
@If $S= @Break
$S=@StringPart 1 $S
$C=@GetConstant ThematicColor
@SetConstant ThematicColor=$S
@Map.DeleteThematicLayers
Карта | Создать тематический вид…
@SetConstant ThematicColor=$C

На цьому тестовому прикладі можна наочно дослідити як виглядають різні варіанти градієнтів:
[attachment=0]ThematicTest.dmf[/attachment]
Додатково:

Створення тематичного вигляду
Використання готових скриптів

Шаблон кадастрових планів для XML-файлів (15-зем)

Створено у відповідності до сучасних вимог. З таблицею координат та експлікацією угідь з новим класифікатором угідь КВЗУ.

Завантажити CadPlanA4_15zem(с координатами).zip

Розархівуйте вміст архіву у вашу папку \Digitals\Templates та перезапустіть програму.

Загрузка цифровой модели рельефа SRTM

youtube.com/watch?v=Umdk8dU … e=youtu.be

Псевдонимы имен слоев и параметров

При сохранении карты в формат ArcGIS Shape и другие имена создаваемых файлов и DBF-полей берутся из классификатора (Карта|Слои, Карта|Параметры). Иногда это вызывает проблемы: наличие пробелов, ограничение на длину, невосприятие кириллицы и т.д.

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

Например:

Здание @Bulding
Дорога @Road

Для создания псевдонима параметра добавьте к его названию /DBF:ИмяПоля.

Например:

Название населенного пункта /DBF:CityName

Псевдонимы работают для экспорта в DXF/DWG/SHP/MIF.

Автоматическое улучшение открываемых растров в Digitals

Новая полезная опция для тех, кто работает с растрами

Включите Растр|Автоконтраст и вид всех открываемых растровых изображений будет улучшен автоматически. Аналог кнопки Авто в меню Растр|Корректировка изображения, но работающий на лету.

youtube.com/watch?v=sMP-AHZ … e=youtu.be