Головна » Файли » Готові скрипти

Скрипт, що записує кадастровий номер з публічної карти в параметр суміжника
11.12.2015, 15:32

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

Категорія: Готові скрипти | Додав: Микола
Переглядів: 2783 | Завантажень: 0 | Коментарі: 9 | Рейтинг: 0.0/0
Всього коментарів: 9
avatar
0
9 Микола • 21:28, 07.01.2018
Назву суміжника засобами Digitals зчитати не можливо. Для такої інформації потрібна авторизація на ПКК через цифровий підпис чи банківську картку. Для Digitals доступна інформація тільки про кадастровий номер, форму власності, ЦВ та площу.

Щоб кадастровий номер записувало в основний параметр суміжника, треба просто замінити
Код
@Map.Object[$I].Parameter[ID7001004] <AdditionalInfoBlock><AdditionalInfo>від $FirstLetter до $SecondLetter - $S $KN<AdditionalInfo>/AdditionalInfoBlock>
на
Код
@Map.Object[$I].Parameter[ID7001003] <Proprietor><LegalEntity><Name>$S $KN</Name></LegalEntity></Proprietor>
Але це можна якось застосувати тільки до юридичних суміжників. У фізичні, де тільки ПІБ це не запхаєш. Для цього і передбачений такий пункт як Додаткова інформація
avatar
8 bk2013 • 20:06, 07.01.2018
А як зробити що б суміжника записувало не в 7001004 а в 7001003 з урахуванням фиична особа або юридична особа
avatar
7 bk2013 • 20:01, 07.01.2018
Микола таке питання. Якщо просканувати то добавляє тільки кадастрові номера, а суміжника автоматично заповнює землі загального користування. ЯК зробити щоб підтягувало суміжника з ПКК
avatar
1
6 Микола • 22:14, 29.07.2016
Скрипт оновлено з урахуванням зауважень із коментарів
avatar
4 Klaid10386 • 16:42, 29.07.2016
І ще промлємка, в паю у суміжниках маємо дорогу, а номер суміжника бере того який через дорогу
avatar
0
5 Микола • 17:39, 29.07.2016
Значить в @SendChars 5 <CR> потрібно поставити менше число, скажімо 2 чи 3
avatar
2 Klaid10386 • 14:20, 29.07.2016
Проблема була в тому що програма російськомовна, а саме:
[ Операції з об'єктами.Розширити/стиснути ]
Сервіс | Обрезать по полигону/рамке
avatar
1
3 Микола • 14:51, 29.07.2016
на україномовній працює. В російськомовній знайдіть аналог цим командам або використовуйте такі аналоги:
@ExecuteMenu ToolsCliPByPolygon взамін Сервіс/Обрезать по полигону/рамке
@ExecuteMenu spbExpand взамін Розширити/Стиснути
avatar
1 Klaid10386 • 13:59, 29.07.2016
скрипт для ХМЛ не працює ((
avatar