Дано: хмара пікетів вздовж дороги, які мають бути показані на карті як висоти по краю догори.
Задача: вивести всі підписи висот, щоб вони автоматично орієнтувалися вздовж дороги.
;іd шару точок
$Id=12000000
;параметр з підписом
$ParamIndex=4
;
$MC=@Map.Count
$SO=0
%Start
$SO=$SO+1
$LID=@Map.Object[$SO].LayerID
@if $LID<>$Id then @Goto %Next
$XYZ=@Map.Object[$SO].Point[1]
$NeaO=@Map.NearestObject 1 $SO $XYZ
@if $NeaO=0 then @Goto %Next
$LineO=@Map.NearestPoint $NeaO 1 $XYZ
$Angle=@Map.Object[$NeaO].LineAngle[$LineO]
$Angle=@StringPart 1,$Angle
$Angle=3600-$Angle*10+900
@if $Angle<=1800 then $Angle=$Angle+1800
@if ("$Angle">"1800") and ("$Angle"<"2700") then $Angle=$Angle+1800
$Caption=@Map.Object[$SO].Caption[$ParamIndex]
$Caption=@StringPart 4 $Caption
;@Break Кут лінії $Angle, властивості підпису $Caption
@Map.DeselectAll
@Map.SelectObject $SO
@Map.Selected.RemoveCaptions $ParamIndex
@Map.Selected.CreateCaptions $ParamIndex 0 0 3 3 0 0
@Map.Object[$SO].Caption[$ParamIndex] * * * $Angle
@Map.RefreshObject $SO
%Next
@if $SO<$MC then @Goto %Start |