Скрипт читає з Публічної карти кадастрові номери усіх ділянок в межах виділеного контуру.
Скрипт більше не працює
$Krok=10
$SO=@Map.SelectedObject
@if "$SO"="0" then @Break Виділіть полігон, в межах якого шукати ділянки на Публічній карті
@SendChars $Krok<CR>
@ExecuteMenu InsertPointstoPolygon
$SO=@Map.Count
@Map.DeselectAll
@Map.SelectObject $SO
$PCount=@Map.Object[$SO].Count
@Progress.Start $PCount Хід виконання
$P=1
$KN=
@Text[1].Add $KN
%NextPoint
$Koord=@Map.Object[$SO].Point[$P]
$KN=
@Progress.StepBy
$rogress=@Progress.Canceled
@if $rogress=1 then @Goto %End
$Res=@Map.GetPublicMapParcelInfo $Koord
@Text.Text $Res
$KN=@Text.Line[1]
@if "$KN"="0" then @Goto %Next2
$MC=@Text[1].Count
@If $MC=1 then @Goto %Next2
$N=0
%Pochatok
$N=$N+1
$LN=@Text[1].Line[$N]
@If "$KN"<>"$LN" then @Goto %Next
$YesKN=1
%Next
@if $N<$MC then @Goto %Pochatok
%Next2
@if "$KN"="0" then @Goto %Next3
@if $YesKN<>1 then @Text[1].Add $KN
%Next3
$YesKN=0
$P=$P+1
@if $P<=$PCount then @Goto %NextPoint
%End
@Progress.Stop
$Result=@Text[1].Text
@Text[1].Copy
$MC=@Text[1].Count
$MC=$MC-1
@Map.Selected.Delete
@if "$MC"="0" then @Break У виділеній області не знайдено ділянок
@Break Знайдено $MC ділянок. Список кадастрових номерів скопійовано в буфер обміну|$Result
;
Скрипт має один суттєвий мінус - пошук дуже довготривалий. Скрипт сканує весь виділений полігон з кроком 10 метрів, перевіряючи, є там ділянка чи немає. І якщо є - додає її кадастровий номер в список. При цьому ще сканує список, чи в ньому вже раніше не добавлений був даний кадастровий номер.
Можна змінити крок пошуку. Тоді процедура буде виконуватися скоріше,але є вірогідність пропустити ділянки.
Щоб задати (змінити) крок пошуку, виділіть будь-який контур і запустіть команду меню Вставка-Точки в полігон. Поставте відповідне значення (бажано 10), по горизонталі і по вертикалі. Порядок - шахи. Натисніть ОК. Дальше, при усіх наступних запусках скрипту, крок в скрипті буде той, який виставлений ось таким методом. |