Пометка объектов

Как выбрать объекты одного слоя только с подписями вынесенными на карту ?

Стандартной команды нет, но, если мне не изменяет память, можн опопробовать найти такие объекты через Систему контроля карт. Почитайте тему и растущие из нее темы, а также поройтесь по форуму. К сожалению подробнее не расскажу, сам с этой системой знаком шапочно.

Функція дасть перелік об’єктів шару 1 для яких винесено підпис з параметра 3. Але разово позначити всі такі об’єкти не вдасться, хіба що попорядку перебрати.
[Captions] Ошибки выноса подписей
1: 3 ; У объекта %L1 недопустимый вынос подписи %P

Інша справа перебрати всі об’єкти карти в скрипті, проаналізувавши наявність підпису (якщо є така функція).
Ага :exclamation: Ось знайшов:

@Map.SelectAll
$Count=@Map.SelCount
@If $Count<1 then @Break Карта не містить об’єктів
$Obg=0
$NObg=1
@Progress.Start $Count Виконую
@Map.BeginUpdate
%Start
@Progress.StepBy
$Obg=@Map.NextSelected $Obg
$Capt=@Map.Object[$Obg].Caption[13];підпис для параметра 13
@If $Capt= then @Map.DeselectObject $Obg
$NObg=$NObg+1
@If $NObg<=$Count then @Goto %Start
@Progress.Stop
@Map.EndUpdate

Скрипт помечает объекты слоя ID20000, у которых есть подпись параметра ID106.

$LayerID=20000 $ParamID=ID106 @Map.DeselectAll $I=0 $N=@Map.Count %Loop $I=$I+1 $L=@Map.Object[$I].LayerID @if $L<>$LayerID then @Goto %Skip $S=@Map.Object[$I].Caption[$ParamID] @if $S<> then @Map.SelectObject $I %Skip @if $I<$N then @Goto %Loop

Але чомусь команда $S=@Map.Object[$I].Caption[$ParamID] зміщує підпис не геометричний центр об’єкта. Може треба окрему функцію, щоб аналізувати винесення підпису :question: