paul писал(а):
Добрый день. Подскажите, можно-ли пометить на карте только все подписанные объекты (вынесена подпись) одного слоя? Или не подписанные.
Скрипт дасть вибрати, в якому шарі позначити об'єкти, для яких хоча б з якогось одного, доступного цим об'єктам параметра, винесено підпис.
Код:
@ExecuteMenu More1
$NumLay=@Map.GetCollectionLayer
$ListParam=@Map.Layers.GetValidParameters $NumLay
$YesParam=
$YesParam=@StringPart 2 $ListParam
@If $YesParam= then @Break Вибраному шару не доступний жодний параметр
@Map.DeselectAll
$CountSel=@Map.SelectLayer $NumLay
$NumObj=0
@Progress.Start $CountSel Шукаю об'єкти з винесеним підписом
@Map.BeginUpdate
%StartObj
@Progress.StepBy
$NumObj=@Map.NextSelected $NumObj
@If $NumObj=0 then @Goto %EndSub
$NumLinParam=1
%StartParam
$NumLinParam=$NumLinParam+1
$NumParam=@StringPart $NumLinParam $ListParam
@If $NumParam= then @Map.DeselectObject $NumObj
@If $NumParam= then @Goto %StartObj
$Capt=@Map.Object[$NumObj].Caption[$NumParam]
@If $Capt= then @Goto %StartParam
@Goto %StartObj
%EndSub
@Map.EndUpdate RefreshAlways
@Progress.Stop
$LayName=@Map.Layers.GetName $NumLay
@Dialog.Message Позначено лише об'єкти в шарі "$LayName" з винесеними підписами бодай одного з доступних шару параметра