1. Відкриваємо обмінник
2. Растр/Завантаження з інтернету
3. Запускаємо скрипт
Результат:
Параметр "Додаткова інформація" кожного суміжника отримує такий вміст:
Від А до Б Іванов І.І.(кадастровий номер 4621283300:01:001:0001)
Якщо кадастровий номер відсутній, тоді просто - "Від А до Б Іванов І.І."
Код скрипту для файлів XML:
@MAp.DeselectAll
@Map.SelectLayer ID70005
$D=@Map.SelectedObject
$XD=@Map.Object[$D].Parameter[-4]
$YD=@Map.Object[$D].Parameter[-3]
$I=0
$Letters=АБВГДЄЕЖЗІИЙКЛМНОПРСТУФХватить
$CN=@Map.Count
$AC=@Map.Layers.ObjectCount ID70010
$CC=0
%Loop
$I=$I+1
$LID=@Map.Object[$I].LayerID
@if $LID<>70010 then @Goto %Continue
$CC=$CC+1
$FirstLetter=@Calc Copy("$Letters",$CC,1)
$FirstLetter=@DequoteText $FirstLetter
$SecondLetter=@Calc Copy("$Letters",$CC+1,1)
@if $CC=$AC then $SecondLetter=@Calc Copy("$Letters",1,1)
$SecondLetter=@DequoteText $SecondLetter
$S=@Map.Object[$I].CalculateFormula XMP(Землі загального користування)
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$NewObj=@Map.NewObject ID10000
@Map.Object[$NewObj].Point[1] $XD $YD 0
@Map.Object[$NewObj].AddPoint $X $Y 0
@MAp.DeselectAll
@Map.SelectObject $NewObj
@Map.Selected.Prolong 1000
@Map.SelectObject $D
@Map.Copy
@FileNew тимчасова
@Map.Paste
@MAp.DeselectAll
@Map.SelectLayer ID70005
@SendChars 3 <CR>
@ExecuteMenu spbExpand
@MAp.DeselectAll
@Map.SelectLayer ID10000
@Map.SelectLayer ID70005
@ExecuteMenu ToolsCliPByPolygon
@Map.DeselectAll
@Map.SelectLayer ID10000
$LObj=@Map.SelectedObject
$XY=@Map.Object[$LObj].Point[2]
$X=@StringPart 1 $XY
$Y=@StringPart 2 $XY
@CloseMap тимчасова
@Window.Refresh
$Res=@Map.GetPublicMapParcelInfo $X $Y
@Text.Text $Res
$KN=@Text.Line[1]
$KN=(кадастровий номер $KN)
@if $Res=0 then $KN=
@Map.Object[$I].Parameter[ID7001004] <AdditionalInfoBlock><AdditionalInfo>від $FirstLetter до $SecondLetter - $S $KN</AdditionalInfo></AdditionalInfoBlock>
%Continue
@if $I<$CN then @Goto %Loop
@MAp.DeselectAll
@Map.SelectLayer ID10000
@Map.Selected.Delete
@Window.Refresh
Код скрипту для файлів IN4:
$Par=@Map.Layers.GetValidParameters ID50000
@Map.Layers.SetValidParameters ID50000 $Par ID20100
@MAp.DeselectAll
@Map.SelectLayer ID20000
$D=@Map.SelectedObject
$XD=@Map.Object[$D].Parameter[-4]
$YD=@Map.Object[$D].Parameter[-3]
$I=0
$Letters=АБВГДЄЕЖЗІИЙКЛМНОПРСТУФХватить
$CN=@Map.Count
$AC=@Map.Layers.ObjectCount ID50000
$CC=0
%Loop
$I=$I+1
$LID=@Map.Object[$I].LayerID
@if $LID<>50000 then @Goto %Continue
$CC=$CC+1
$FirstLetter=@Calc Copy("$Letters",$CC,1)
$FirstLetter=@DequoteText $FirstLetter
$SecondLetter=@Calc Copy("$Letters",$CC+1,1)
@if $CC=$AC then $SecondLetter=@Calc Copy("$Letters",1,1)
$SecondLetter=@DequoteText $SecondLetter
$S=@Map.Object[$I].Parameter[ID20030]
$X=@Map.Object[$I].Parameter[-4]
$Y=@Map.Object[$I].Parameter[-3]
$NewObj=@Map.NewObject ID4
@Map.Object[$NewObj].Point[1] $XD $YD 0
@Map.Object[$NewObj].AddPoint $X $Y 0
@MAp.DeselectAll
@Map.SelectObject $NewObj
@Map.Selected.Prolong 1000
@Map.SelectObject $D
@Map.Copy
@FileNew тимчасова
@Map.Paste
@MAp.DeselectAll
@Map.SelectLayer ID20000
@SendChars 5 <CR>
@ExecuteMenu spbExpand
@MAp.DeselectAll
@Map.SelectLayer ID4
@Map.SelectLayer ID20000
@ExecuteMenu ToolsCliPByPolygon
@Map.DeselectAll
@Map.SelectLayer ID4
$LObj=@Map.SelectedObject
$XY=@Map.Object[$LObj].Point[2]
$X=@StringPart 1 $XY
$Y=@StringPart 2 $XY
@CloseMap тимчасова
@Window.Refresh
$Res=@Map.GetPublicMapParcelInfo $X $Y
@Text.Text $Res
$KN=@Text.Line[1]
$KN=(кадастровий номер $KN)
@if $Res=0 then $KN=
@Map.Object[$I].Parameter[ID20100] від $FirstLetter до $SecondLetter - $S $KN
%Continue
@if $I<$CN then @Goto %Loop
@MAp.DeselectAll
@Map.SelectLayer ID4
@Map.Selected.Delete
@Window.Refresh
|