Запрос на функцию

Добрый день
Возникла необходимость переместить полигон на определенную дистанцию (на север на 1 м)
Подскажите как при помощи скрипта переместить полигон на определенную дистанцию

  • Вырезаем полигон в пустую карту
  • Карта - Система координат - Плоская-Плоская - в старой системе 0 0, в новой системе 1 0 - ОК
  • Копируем объект обратно

Распакуйте архив в папку Digitals
Функция %Library.MoveSelectedObjects dX dY dZ смещает помеченные объекты в активной карте.
На панели Move.tlb 4 кнопки для перемещения объектов на 1м в разные стороны, пятая кнопка позволяет задать вектор смещения.

З.Ы. Не смог найти способ надежного определения системного разделителя целой и дробной части, потому при запятой-разделителе могут быть сбои в работе на точках, у которых все 3 координаты - целые.

Зачем так все сложно? Задаете через ctrl d вектор смещения а дальше режим ПЕРЕМЕЩЕНИЕ

Добавлена функция скриптов @DecimalSeparator, возвращающая разделитель целой и дробной части.

Обновленный скрипт, надежно работающий с разными разделителями. Требуется версия ged.exe от 14.09.12 и позже

Ну от. Функцій стає більше і писати скрипти простіше :smiley:
А можна попросити, в функції @Map.Object[N].Point[N] добавити параметр [Node] - вузел?. В скрипті застосовую @Map.Object[N].Point[N] X Y [Z] для зміни координат точки об’єкта, але треба змінити координати вузла. Тобто функція @Map.Object[N].Point[N] [Node] X Y [Z] при наявності параметра встановить координати вузла, в якому лежить точка об’єкта.
Дякую.

Розпакуйте в папку Digitals\Library

Скрипт зміщує вузол
%Library.MoveNode ObjectNumber PointNumber dX dY dZ NotIgnoreZDiff

Скрипт зміщує об’єкт
%Library.MoveNodedObject ObjectNumber dX dY dZ NotIgnoreZDiff

ObjectNumber - номер об’єкта
PointNumber - номер точки
dX dY dZ -вектор зміщення
NotIgnoreZDiff - при нульовому або пустому значенні відмінності висот точок ігноруються, тобто точки з однаковими плановими координатами вважаються вузлом, інакше звіряються всі 3 координати

Дуже дякую за підтримку :smiley:

Уважаемые разработчики пожалуйста добавьте, в редакторе скриптов описание функций @Map.Object…
Буду благодарен.

Доречі. З’явилась нова функція @Map.Object[N].OverlayList [Layer] без пояснень :open_mouth: .
“З чим її можна їсти”, якби хтось пояснив - буду вдячний.

@Map.Object[N].OverlayList [Layer]
Функция возвращает список номеров объектов-полигонов (полилинии, точки игнорируются) карты, пересечение с которыми текущего объекта имеет ненулевую площадь. Если указан номер слоя Layer, то пересечения ищутся только в этом слое. Разделитель в списке - перевод каретки, парсить удобно через @Text[N].Text

А мены треба щоб закинуть 100 хмл в один файл! Або як це можна зробить? Спс.

Так же, как и для ин4, xml можно “закидывать” в программу целой папкой. Все внутренние папки будут просмотрены рекурсивно автоматически.

СПС! :smiley:

Подскажите пожалуйста, каким образом можно написать на паскале условие:
"Если участок содержит слой 35.1 капітальна (ID30351) или 35.2 тимчасова (ID30352) то возвращается значение “забудована”. В противном случае - “не забудована”?

Пример

Здраствуйте!!! Столкнулся с проблеммой. Из ДЗК вернулось куча обменников с ошибкой: “Порядок суміжників не відповідає кадастровому плану”.
Как выяснилось функция digitals “по часовой стрелке” не совсем корректно работает со смежниками.
быть.rar (3.15 KB)
использования функции.rar (3.21 KB)

Порядок точек смежников должен совпадать с порядком точек участка, смежеством к которому данный смежник и является. Порядок точек участка должен быть по часовой стрелке.
Для незамкнутого объекта (коим в большинстве случаев является смежник) не приемлемо утверждать, что порядок точек в нем “по часовой стрелке” либо “против часовой стрелки”. Функция “По часовой стрелке” на закладке “Правка” разворачивает незамкнутые объекты с учетом замыкания, потому для данной задачи она не подходит. Эта функция всегда так работала.

а не планується підтримка растрового формату ECW?