Головна » 2016 » Січень » 1 » Скриптові функції - Управління об'єктами карти
22:28
Скриптові функції - Управління об'єктами карти

Всі скриптові функції Digitals для зручності можна поділити на категорії, в залежності від того, які операції та над якими об'єктами виконує та чи інша функція.


Для зручності управління об'єктами карти кожен об'єкт (чи то точка, чи лінія, чи полігон) має свій порядковий номер (ідентифікатор). Номери об'єктам присвоюються в порядку їх додавання на карту і відповідають плановості (на передній план, на задній план) їх відображення на екрані.

Загальні функції

@Map.Count - повертає кількість об'єктів на карті

@Map.CalculateRange - перераховує (оновлює) список об'єктів карти після редагування та видалення.

@Map.NewObject Layer [ID] - створює новий "пустий" об'єкт і задає його порядковий номер

@Map.CollectedObject - повертає номер поточного об'єкта, який збирається

@Map.ParentObject Number [ParentLayer] - повертає номер батьківського об'єкта, тобто найменшого полігону, який містить в собі даний полігон. Якщо розміри полігонів однакові, то батьківським вважається той, в якого менше id. Наприклад, для шару XML:Земельна ділянка батьківським буде шар XML:Кадастровий квартал.

@Map.Object[N].OverlayList [Layer] - повертає список усіх об'єктів, які спавпадають із вказаним (або тільки в конкретному шарі)

@Map.DeleteObject Number - видаляє вказаний об'єкт

@Map.GetObjectHeader Number - повертає ID об'єкта і порядковий номер його шару у списку шарів

@Map.PutObjectHeader Number|ID|Layer - змінює ID об'єкта і порядковий номер його шару. Див. попередню функцію.

@Map.GetObjectParameters Number - повертає ID об'єкта, номер шару і список значень його параметрів

@Map.PutObjectParameters Number|ID|Layer|Count|List - змінює значення параметрів об'єкта. Див. попередню функцію

@Map.Object[N].Center - повертає координати центра об'єкта

@Map.Object[N].GetMinMax - повертає розмах об'єкта у вигляді "MinX MinY MinZ MaxX MaxY MaxZ"

Основні операції з ВИДІЛЕНИМИ об'єктами

@Map.SelectedObject - повертає номер виділеного об'єкта

@Map.SelCount - повертає число виділених об'єктів

@Map.Object[N].Selected - повертає 1, якщо об'єкт виділений

@Map.NextSelected LastNumber - повертає номер виділеного об'єкта, наступного після LastNumber (використовується для створення циклу по виділених об'єктах)

@Map.Selected.List - повертає список номерів виділених об'єктів

@Map.Selected.Copy - копіює в буфер обміну виділені об'єкти

@Map.Selected.Cut - вирізає в буфер обміну виділені об'єкти

@Map.Paste - вставляє об'єкти із буфера обміну на карту

@Map.Selected.ChangeLayer LayerIndex - міняє шар для виділених об'єктів

Виділення та зняття виділення

@Map.SelectObject Number - виділяє на карті об'єкт по вказаному порядковому номеру (Number

@Map.DeselectObject Number - знімає виділення з об'єкта із заданим порядковим номером.

@Map.SelectAll - виділяє всі об'єкти карти

@Map.DeselectAll - знімає виділення з усіх об'єктів

@Map.SelectLayer Numbers - виділяє всі об'єкти, що знаходяться в шарі Numbers. Numbers - порядковий номер чи ID шару

@Map.SelectLayer 9

@Map.SelectLayer ID70005

@Map.SelectLayerByName LayerName - виділяє об'єкти шару по імені.

@Map.SelectLayer Квартал

@Map.SelectConnectedNeighbouring - виділяє об'єкти, які лежать близько до виділеного об'єкта

@Map.SelectNeighbouring Distance - виділяє об'єкти, які лежать на вказану відстань від виділеного об'єкта

@Map.SelectInsideSelected - виділяє об'єкти, які лежать всередині виділеного об'єкта

@Map.SelectConnected - виділяє об'єкти, які мають спільні точки із виділеним об'єктом

@Map.SelectByParameters Count|List - виділяє (шукає) об'єкти по значеннях їх параметрів. Count - кількість критеріїв пошуку, List - номер параметра і критерій пошуку (=,<,>,<>,~)

@Map.DeselectAll
@Map.SelectByParameters 1|0<0,05 
;виділить об'єкти, площа яких (параметр 0) менша за 0,05 га

@Map.DeselectAll
@Map.SelectByParameters 2|-1>0|0=0 
;виділить об'єкти за двома параметрами: якщо довжина (параметр -1) більша за 0, і якщо площа (параметр 0) дорівнює 0

@Map.SelectByParametersSelected Count|List - виділяє об'єкти із числа виділених по значенню їх параметрів

@Map.SelectObjectByForestID ID - виділяє на карті виділ із заданих id
 

Відображення на екрані

@Window.ShowSelected - показати виділені об'єкти на карті

@Map.Selected.Refresh - обновлює на екрані виділені змінені об'єкти (бо деякі функції це автоматично не роблять)

@Map.RefreshObject Index - обновлює на екрані вказаний (Index) змінений об'єкт (бо деякі функції це автоматично не роблять)

@Map.Selected.BringToFront - змінює порядок відображення об'єктів, поміщуючи виділені на передній план

@Map.Selected.SendToBack - змінює порядок відображення об'єктів, поміщаючи виділені на задній план

@Map.SortByParameter ParameterIndex +/- - сортує виділені об'єкти карти (передній/задній план) по значенню будь-якого параметра ("+" - по зростанню, "-" - по спаданню). Може бути корисною для обробки об'єктів у певній послідовності. Увага!!! - зміна плановості об'єктів веде до зміни їх порядкових номерів.

@Map.SortByParameter 0 +
;посортує об'єкти за площею від меншого до більшого

@Map.MoveObjectAlongTrack [MoveSpeed] [UpdateInterval] - переміщає виділений об'єкт (повинен бути виділений першим) вздовж виділеного треку (полілінії). Швидкість задається в км/год. Інтервал обновлення в сек.

Інші функції

@Map.Object[N].ID - повертає id об'єкта (параметр -6)

@Map.RenumberIDs [LastUsedID] - переприсвоює id об'єктам, починаючи з LastUsedID

@Map.Object[N].GoogleBLCode - повертає довготу/широту об'єкта у форматі Google Maps

 


Примітка: жирним шрифтом (напр.@ActivateMap) виділена назва функції, похилим шрифтом (напр.Number) перемінна функції, у квадратних скобках (напр.[MapNumber]) необов'язкова перемінна, яка може вказуватися, а може і не вказуватися.

 

Переглядів: 6268 | Додав: Микола | Рейтинг: 0.0/0
Всього коментарів: 14
avatar
13 SerjN • 11:49, 20.05.2021 [Матеріал]
Доброго дня,
Підкажіть якими функціями змінюються параметри таблиць - висота строк, ширина ячеєк, вирівнювання тексту... ?
avatar
0
14 Микола • 19:42, 20.05.2021 [Матеріал]
Доброго вечора. Доступ до властивості таблиць можна здійснювати через функцію @Map.SetObjectParamBuf

Зокрема, щоб змінити ширину колонок таблиці (приклад, коли в таблиці 7 колонок):


А так можна змінити висоту рядків таблиці:
avatar
11 magna949494 • 10:46, 08.07.2020 [Матеріал]
Здравствуйте подскажите пожалуйста как вы реализовали решение проблемы, когда я знаю центр объекта и мне нужно переместить в этот центр объекты, я знаю как сделать когда один объект, вообщем смысл таков как и в скрипте АКТ, когда я вставляю в другом масштабе, а далее мне нужно сместить их...
заранее спасибо.
avatar
0
12 Микола • 19:36, 08.07.2020 [Матеріал]
Функція @Map.Object[N].Move X Y [Z] - переміщує об'єкт на вказаний вектор
А щоб перемістити не один, а зразу декілька об'єктів, просто потрібно зробити цикл по виділених об'єктах:
Код
$NS=0
%StartNS
$NS=@Map.NextSelected $NS
@if $NS=0 then @Goto %EndNS
@Map.Object[$NS].Move X Y   
@Goto %StartNS
%EndNS
avatar
9 Анонімно • 00:04, 14.03.2020 [Матеріал]
Доброго вечора, можливо якось через скрипт додати додаткові параметри які знаходяться в списку ( наприклад номер ) в вкладку інфо.,  де раніше вони були відсутні. ( це буде частиною іншого скрипта) я просто нерозумію як правильно вказати параметр
avatar
0
10 Микола • 17:34, 14.03.2020 [Матеріал]
Код
;створюємо параметр ID50094 при його відсутності
$Par94=@Map.Parameters.Get ID50094
@if $Par94= then @Map.Parameters.Add 50094 5 Налаштування скрипту
;добавляємо параметр ID50094 в список доступних шару XML Земельна ділянка
$ParDil=@Map.Layers.GetValidParameters ID70005
@Map.Layers.SetValidParameters ID70005 $ParDil ID50094
avatar
7 magvlad55 • 13:24, 19.12.2019 [Матеріал]
Добрый день, кто-то может показать костыль, который копирует содержимое таблицы и вставляет в другую.
avatar
0
8 Микола • 15:16, 20.12.2019 [Матеріал]
Добрий день!
Це робиться за допомогою табличних функцій (детальніше тут - Текстові списки)
Код
@Map.DeselectAll
@Map.SelectLayer id111
$SO=@Map.SelectedObject
$Table=@Map.Object[$SO].TableText
@Map.DeselectAll
@Map.SelectLayer id222
$SO2=@Map.SelectedObject
@Map.Object[$SO2].TableText $Table

замість 111 та 222 поставте id ваших таблиць
avatar
5 kolkass • 17:42, 28.07.2018 [Матеріал]
Доброго дня!
Підкажіть чому не копіює в буфер?

$PrPath=@ProgramPath
@Map.SelectLayer ID70005
@Map.Copy
@Run $PrPath\Reports.exe -t$PrPath\Templates\Zayava_Architect.fr3
@goto %Exit

Дякую.
avatar
0
6 Микола • 21:48, 28.07.2018 [Матеріал]
якщо шлях до папки містить пробіли, то виклик Reports може не працювати
avatar
3 Kochyr • 16:29, 15.06.2017 [Матеріал]
наприклад карта стоїть на 3 місті (id 3) а перемістити на 1 місце (id 1) (звичайно і з вмістом карти).
avatar
0
4 Микола • 17:11, 15.06.2017 [Матеріал]
такої функції нема, можна тільки автоматично активувати ту чи іншу вкладку
avatar
1 Kochyr • 23:28, 14.06.2017 [Матеріал]
Микола Ярославович, як за допомогою скрипту створити карту, яка знаходиться під написом ФАЙЛ є кнопка СТВОРИТИ (аркуш з вибором шаблонів карти) та перемістити створену карту наприклад на 3-тю за рахунком карту?
avatar
0
2 Микола • 16:02, 15.06.2017 [Матеріал]
трохи не зрозумів, що значить перемістити створену карту. Поміняти місцями вкладки? Чи перемістити вміст карти?
як створити карту - дивіться в цьому розділі  - Файли, папки та карти.
avatar