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

Доброго дня.

Трохи не вистачає скриптової функції @Map.Layer.CollectionTemplate Number [Index], яка повертала б шаблон збору, призначений для шару з номером (або ID) Number та при наявності індекса шаблону Index ще й встановлювала/змінювала його. Якщо можна додати - було би добре.

Бачу, розробники Digitals уже успішно просунулися в отриманні атрибутів з сайту ngo.land.gov.ua/. А складно додати скриптову функцію, яка б читала звідти коди грунтів?

Додано функцію
@Map.Layers.CollectionTemplate Number [Index]
яка встановлює/повертає Index шаблону сбору шару Number.

Index співпадає з номером шаблону у відповідному випадаючому списку менеджера шарів.
0 - очищення
1 - Polyline
2 - Polygon
3 - Rectangle
4 - Orthogonal
5 - Point
6 - Line
7 - Circle
8 - Parallel
9 - Stairs
10 - Passage
11 - Threelinear
12 - Middle Point
13 - Start Point

Добрий день! А чому ви не оновите файл Digitals\Templates\XML.csv у всіх користувачів, видаливши звідки строку 7000512 100 Приватна власність
Або взагалі зробіть випадаючий список з порожнім рядком

Щоб користувачі могли зразу вибрати варіант - не вказувати форму власності.
Ця проблема виникає в багатьох. Бо інакше дають таке зауваження:

Підкажіть будь-ласка, як в дмт шаблон вставити точки/межові знаки в кожну поворотну точку ділянки з вказаною нумерацією. Дякую.
Вірніше щоб вони там з’являлись.

Дуже не вистачає скриптової функції, яка могла б встановлювати висоту рядків та ширину колонок в таблицях.
Якби така була - це дало б величезні можливості для формування різних експлікацій.
Тоді можна було б в скрипті прописати, щоб вони автоматично змінювалися залежно від довжини тексту в ячейках (чи висоти таблиці).

@Map.GetObjectParamBuf
@Map.SetObjectParamBuf

Дякую!

:slight_smile: для прикладу, бо колись теж це довго шукав

$NewHeight=12000
;
$c10=@Calc char(10)
$c13=@Calc char(13)
$c10=@DequoteText $c10
$c13=@DequoteText $c13
;
$Obj=@Map.NextSelected
$Buf=@Map.GetObjectParamBuf $Obj
@Text[1].Clear
@Text[1].Text=$Buf
;
$Count=@Text[1].Count
$I=1
$Result=
@While $I<=$Count %LoopText
$Line=@Text[1].Line[$I]
$Name=@StringPart 1 $Line
@If ($I=2) And ("$Name"<>"ROWHEIGHT") Then $Result=@Concat $Result,$c10,ROWHEIGHT $NewHeight
@If ("$Name"="ROWHEIGHT") Then $Line=ROWHEIGHT $NewHeight
@If $Result= Then $Result=$Line Else $Result=@Concat $Result,$c10,$Line
$I=$I+1
%LoopText
@Map.SetObjectParamBuf $Obj$c13$c10$Result
$Table=@Map.Object[$Obj].TableText
@Map.Object[$Obj].TableText=$Table
;@Map.RefreshObject $Obj
@ExecuteMenu ViewRefresh

Ну та, з цими символами ASCII зразу би не зрозумів, що до чого. Не так просто це все зібрати до купи після внесення змін. Дякую, Руслан. Справді завдяки Вам зекономив багато часу.

До речі, експерементуючи з ASCII (все ж таки було цікаво чому саме char(10) та char(13)), я вирішив іншу задачу.
Вона полягала в тому, що в таблицях не можливо було поставити знак табуляції на початках абзацу, бо знак Tab (char(9)) тут є чомусь роздільником колонок в таблиці.
Тому на початку абзаців замість знаку табуляції завжди ставив декілька пробілів під ряд. І все б добре, але при такому способі не можливо було вирівняти текст по дві сторони, бо ці пробіли тоді згразу з’їдало.

А методом експериментів з символами ASCII виявив, що можна замість знаків табуляції ставити char(2)
Для того, щоб поставити такі символи на початках абзаців потрібно просто поставити подвійні пробіли, потім виділити текстові блоки, які треба вирівнювати по дві сторони і запустити цей скрипт:

$c2=@Calc char(2) $c2=@DequoteText $c2 $NS=0 %Start $NS=@Map.NextSelected $NS @if $NS=0 then @Break $Text=@Map.Object[$NS].TableText $Text=@ReplaceChar "~$Text $Text=@Calc replace("$Text"," ","$c2") $Text=@DequoteText $Text $Text=@ReplaceChar ~"$Text @Map.Object[$NS].TableText $Text @Window.Refresh @Goto %Start

І вуаля - тепер текст можна вирівнювати по дві сторони із збереженням абзаців.

Цікавить ще також думка розробників Digitals, чи не викличе це якихось конфліктів в програмі? Може цей символ використовується де-інде?

Ще б придумати, як зробити щоб дати вигляду 29.12.2014 не переносило в нові рядки по частинах. І щоб текст вигляду “с.Волоща” також не переносило, залишаючи в одному рядку “с.”, а наступному “Волоща”. Є якісь символи для заборони перенесення в новий рядок? Чи для якогось особливого склеєння тексту?

Чи можна додати підтримку в текстових блоках нерозривних пробілів?

Спробуйте char(160) замiсть char(32) - код символу пробiлу. Я в себе в меню його використовую для вiдображення декiлькох слiв в пунктi меню.

без крапки працює, а з крапою (К. Пилипенко) - ділить по крапці. К. залишає в одному рядку, а Пилипенко - в іншому.
треба спеціальну крапку, яка не дозволяє переносити наступний після неї символ в новий рядок.

Тут два варiанти, або внести корективи розробникам в ф-цiю форматування переносу тексту: коли пiсля крапки є пробiл, тодi переносити, в iншому випадку нi, або писати самому аналiз коду з @Map.GetObjectParamBuf i ставити перенесення тексту (||) в потрiбному мiсцi. Будуть труднощi з текстом з лапками, бо не всi команди ф-цiї @Calc пiдтримують роботу з ними, можна скористатись ф-цiєю @StringToEscape, але це вже iнше питання :wink:

Доброго дня!! Чи можна зробити перенос по словах в редакторі тексту, неудобно редагувати великі тексти.

Доброго дня. Прохання добавити реактор %Events.OnMouseClick з можливiтю отримання координат у форматi LatLon (щось подiбне є у “калькуляторi”, але для цього потрiбно записувати данi у параметер iснуючого об’єкта). Є напрацювання для отримання даних з ПКК i iнформацiї з кабiнету по дiлянцi, але не вистачає даної процедури. Дякую.

Є певні труднощі з додаванням такої події, не зрозуміло коли саме клік має ігноруватись, не ігнорувати у випадках збору об’єктів мабуть помилково.
Альтернативою може бути подія OnCollect або OnCollectPoint, див. обробники подій для двох шарів у прикладі.

:slight_smile: Дякую за пiдказку, i результат можна записати, при потребi, в створений об’єкт. Гарних вихiдних!

Я щось пропустив?
В Digitals уже загружається карта НГО ngo.land.gov.ua/???
Я цього у себе не знайшов…
Сьогодні зібрався писати на форумі до розробників про НЕОБХІДНІСТЬ Загрузки карти НГО.
Можливо іще комусь, крім мене це потрібно?
Карта Грунтів на ПКК - зовсім НЕ затребувана (не підходить) для роботи.
Для роботи потрібна карта Агровиробничих груп Грунтів, саме із сайту НГО!!!

доброго дня розробники,

Функція побудови перепендикулярів @Map.PerpendicularToNearestLine створює перпендикуляри з вистами точок Z=0.
Поновіть цю функцію так, щоб висоти кінців перпендикуляру успадковували висоту точки від якої будується перпендикуляр і висоту точки примакання інтерпольовану з лінії.

Також цікавить функція @Map.ShortestSegmentBetweenObjects, яка повертає значення x1 y1 x2 y2. Хочеться мати на виході також z1 і z2.

Дякую.