Аналитика
http://geosystema.net/forum/

Библиотека полезных скриптов
http://geosystema.net/forum/viewtopic.php?f=3&t=2539
Страница 6 из 15

Автор:  zahidzem [ 15 май 2015 08:10 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Доброго дня. Из какого сообщения скачивать? по сылке только скрипт. Или я чего то не понимаю?

Сори все получилось!!!!

Автор:  sirenko_s_a [ 07 сен 2015 09:46 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Доброго всім дня! У когось є скрипт для заповнення шару "Обмеження". Якщо є змога, то поділіться :)

Автор:  sergykydr [ 09 сен 2015 10:22 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sirenko_s_a Спробуйте цей.

;ОБМЕЖЕННЯ
$KolObmez=@Map.SelectLayer ID70008
@if $KolObmez=0 then @Break На земельній ділянці обмеження відсутні
$MC=@Map.Count
@Map.DeselectAll
$I=0
%Loop
$I=$I+1
;Знаходимо ID шару
$LID=@Map.Object[$I].LayerID
@if $LID<>70008 then @Goto %Continue
@Map.SelectObject $I
Вид | Показать помеченные
;Вибір параметрів
$Tip=@Dialog.Select Вкажіть тип обмеження|ЛЕП|Прибережні захисні смуги вздовж річок, навколо водойм та на островах|...
@if $Tip=ЛЕП then @goto %LEP
@if $Tip=Прибережні захисні смуги вздовж річок, навколо водойм та на островах then @goto %Voda
%LEP
@Map.Selected.SetParameter 83 01.05 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter 84 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter 86 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Закон України "Про землі енергетики та правовий режим спеціальних зон енергетичних об'єктів"</DocumentName><DocumentDate>2010-07-09</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter 87 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter 91 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
@goto %konecobmez
%Voda
@Map.Selected.SetParameter 83 05.02 Прибережні захисні смуги вздовж річок, навколо водойм та на островах
@Map.Selected.SetParameter 84 Прибережні захисні смуги вздовж річок, навколо водойм та на островах
@Map.Selected.SetParameter 86 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Водний кодекс</DocumentName><DocumentDate>1995-07-06</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter 87 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter 91 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
%konecobmez
;Знімаємо помітку з об'єкту
@Map.DeselectObject $I
%Continue
@if $I<$MC then @Goto %Loop



P/s/ мова Digitals: російська

Автор:  sirenko_s_a [ 09 сен 2015 14:06 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Як прив`язатись до ID, бо до номеру шару дає помилку

Автор:  sirenko_s_a [ 09 сен 2015 14:14 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Vaho писал(а):
Скачал обновления и прочитал, что добавили интересную функцию "@Map.CreateLayout". Сначала попробовал сам разобраться, но выдавало мне чистый лист. Нашел на форуме пример использования этой функции, тоже самое, формирует пустой лист. Может что делаю не так?
Пример:
$SO=@Map.SelectedObject
@if $SO=0 then @Break Нужно пометить объект
$X=@Map.Object[$SO].Parameter[-4]
$Y=@Map.Object[$SO].Parameter[-3]
$PP=@ProgramPath
$FN=$PP\Pictures\Викопіювання.bmp
@Map.CreateLayout $X $Y 605 605 0 300 8 $FN
@Run $FN

А в "сервис\документы" - вообще такой функции или шаблона не нашел.
После обновления в папке "С:\Digitals\Update\Templates" - пусто, "С:\Digitals\Update\Favorites" - пусто. То-есть: никаких шаблонов скачано не было!


Пробував цей скрипт, працює, але чому не в кольорі створює .ВМП???

Автор:  Dmitry_Zolotar [ 09 сен 2015 14:37 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sirenko_s_a писал(а):
Пробував цей скрипт, працює, але чому не в кольорі створює .ВМП???

змініть бітність растру з 8 на 24
...
@Map.CreateLayout $X $Y 605 605 0 300 24 $FN
...

Автор:  sirenko_s_a [ 09 сен 2015 15:04 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Dmitry_Zolotar писал(а):
sirenko_s_a писал(а):
Пробував цей скрипт, працює, але чому не в кольорі створює .ВМП???

змініть бітність растру з 8 на 24
...
@Map.CreateLayout $X $Y 605 605 0 300 24 $FN
...

:) Дякую!

Автор:  sirenko_s_a [ 09 сен 2015 15:32 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sergykydr писал(а):
sirenko_s_a Спробуйте цей.

;ОБМЕЖЕННЯ
$KolObmez=@Map.SelectLayer ID70008
@if $KolObmez=0 then @Break На земельній ділянці обмеження відсутні
$MC=@Map.Count
@Map.DeselectAll
$I=0
%Loop
$I=$I+1
;Знаходимо ID шару
$LID=@Map.Object[$I].LayerID
@if $LID<>70008 then @Goto %Continue
@Map.SelectObject $I
Вид | Показать помеченные
;Вибір параметрів
$Tip=@Dialog.Select Вкажіть тип обмеження|ЛЕП|Прибережні захисні смуги вздовж річок, навколо водойм та на островах|...
@if $Tip=ЛЕП then @goto %LEP
@if $Tip=Прибережні захисні смуги вздовж річок, навколо водойм та на островах then @goto %Voda
%LEP
@Map.Selected.SetParameter 83 01.05 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter 84 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter 86 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Закон України "Про землі енергетики та правовий режим спеціальних зон енергетичних об'єктів"</DocumentName><DocumentDate>2010-07-09</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter 87 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter 91 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
@goto %konecobmez
%Voda
@Map.Selected.SetParameter 83 05.02 Прибережні захисні смуги вздовж річок, навколо водойм та на островах
@Map.Selected.SetParameter 84 Прибережні захисні смуги вздовж річок, навколо водойм та на островах
@Map.Selected.SetParameter 86 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Водний кодекс</DocumentName><DocumentDate>1995-07-06</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter 87 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter 91 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
%konecobmez
;Знімаємо помітку з об'єкту
@Map.DeselectObject $I
%Continue
@if $I<$MC then @Goto %Loop



P/s/ мова Digitals: російська

А як зробити щоб по кожному окремому обмеженню забивати інформацію. Бо коли вибираєш ЛЕП то присвоює ЛЕП всім існуючим обмеженням на ділянці.

Автор:  sergykydr [ 10 сен 2015 19:17 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sirenko_s_a писал(а):
А як зробити щоб по кожному окремому обмеженню забивати інформацію. Бо коли вибираєш ЛЕП то присвоює ЛЕП всім існуючим обмеженням на ділянці.


Так не повино бути, десь помилка. Скиньте скрін з менеджеру шарів вашого XML.

Автор:  sirenko_s_a [ 11 сен 2015 14:51 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sergykydr писал(а):
sirenko_s_a писал(а):
А як зробити щоб по кожному окремому обмеженню забивати інформацію. Бо коли вибираєш ЛЕП то присвоює ЛЕП всім існуючим обмеженням на ділянці.


Так не повино бути, десь помилка. Скиньте скрін з менеджеру шарів вашого XML.


добавив розшифрування обмеження 01.05 Охоронна зона ..... Все одно

Вложения:
Image 003.jpg
Image 003.jpg [ 49.06 Кб | Просмотров: 70943 ]

Автор:  sergykydr [ 12 сен 2015 08:40 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

Всеж таки краще привязуватись до ID параметру:

%LEP
@Map.Selected.SetParameter ID7000801 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter ID7000803 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Закон України "Про землі енергетики та правовий режим спеціальних зон енергетичних об'єктів"</DocumentName><DocumentDate>2010-07-09</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter ID7000808 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter ID7000812 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
@goto %konecobmez

Автор:  sirenko_s_a [ 15 сен 2015 12:33 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

sergykydr писал(а):
Всеж таки краще привязуватись до ID параметру:

%LEP
@Map.Selected.SetParameter ID7000801 Охоронна зона навколо (вздовж) об’єкта енергетичної системи
@Map.Selected.SetParameter ID7000803 <RestrictionEntitlement><DocumentType>01</DocumentType><DocumentName>Закон України "Про землі енергетики та правовий режим спеціальних зон енергетичних об'єктів"</DocumentName><DocumentDate>2010-07-09</DocumentDate></RestrictionEntitlement>
@Map.Selected.SetParameter ID7000808 <RestrictionTerm><Permanent/></RestrictionTerm>
@Map.Selected.SetParameter ID7000812 <Payment><Free/></Payment>
@Dialog.Message Для виділеного об'єкта вибрано тип обмеження:"$Tip"
@goto %konecobmez


Просто супер з прив'язкою до ID

Автор:  Виталий [ 22 сен 2015 12:15 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

fendak писал(а):
Написав сприпт, який автоматично визначає в якій стороні світу знаходиться межовий знак
Тут можна переглянути відео, як воно працює

Перед запуском відриваємо IN4
Код:
;Перевірка наявності відкритої карти
$CountMap=@MapCount
@If $CountMap=0 then @Break Для роботи скрипту потрібен IN4
$N=@Map.Count
@If $N=0 @Break На карті немає об'єктів
@Map.DeselectAll
@Map.SelectLayer ID20000
$N=@Map.SelCount
@If $N=0 @Break На карті немає ділянок
@Map.Selected.CreateCaptions -9 0 2 1 1 2 3
@Map.Copy
$SelObj=@Map.SelectedObject
$Range=@Map.Object[$SelObj].GetMinMax
$MinX=@StringPart 1 $Range
$MinX=%Library.ReplaceComma $MinX
$MinX=$MinX-1
$MaxX=@StringPart 4 $Range
$MaxX=%Library.ReplaceComma $MaxX
$MaxX=$MaxX+1
$CntrX=@Calc ($MinX+$MaxX)/2
$MinY=@StringPart 2 $Range
$MinY=%Library.ReplaceComma $MinY
$MinY=$MinY-1
$MaxY=@StringPart 5 $Range
$MaxY=%Library.ReplaceComma $MaxY
$MaxY=$MaxY+1
$CntrY=@Calc ($MinY+$MaxY)/2
;
$Ser1X=@Calc ($MaxX-$MinX)/3+$MinX
$Ser2X=@Calc ($MaxX-$MinX)/3+$Ser1X
$Ser1Y=@Calc ($MaxY-$MinY)/3+$MinY
$Ser2Y=@Calc ($MaxY-$MinY)/3+$Ser1Y
;
@FileNew Визначення сторони світу
@Map.Layers.SetAttributes 2 0 0 16777215 30 1 16777215 0 Courier_New 80 0 -2147483640
$P1=@Map.NewObject ID10000
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].AddPoint $Ser2X $MinY
@Map.Object[$P1].AddPoint $MaxX $MinY
@Map.Object[$P1].AddPoint $MaxX $Ser1Y
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].Delete 1
;
$P2=@Map.NewObject ID10000
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].AddPoint $MaxX $Ser1Y
@Map.Object[$P2].AddPoint $MaxX $Ser2Y
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].Delete 1
;
$P3=@Map.NewObject ID10000
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].AddPoint $MaxX $Ser2Y
@Map.Object[$P3].AddPoint $MaxX $MaxY
@Map.Object[$P3].AddPoint $Ser2X $MaxY
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].Delete 1
;
$P4=@Map.NewObject ID10000
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].AddPoint $Ser2X $MaxY
@Map.Object[$P4].AddPoint $Ser1X $MaxY
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].Delete 1
;
$P5=@Map.NewObject ID10000
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].AddPoint $Ser1X $MaxY
@Map.Object[$P5].AddPoint $MinX $MaxY
@Map.Object[$P5].AddPoint $MinX $Ser2Y
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].Delete 1
;
$P6=@Map.NewObject ID10000
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].AddPoint $MinX $Ser2Y
@Map.Object[$P6].AddPoint $MinX $Ser1Y
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].Delete 1
;
$P7=@Map.NewObject ID10000
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].AddPoint $MinX $Ser1Y
@Map.Object[$P7].AddPoint $MinX $MinY
@Map.Object[$P7].AddPoint $Ser1X $MinY
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].Delete 1
;
$P8=@Map.NewObject ID10000
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].AddPoint $Ser1X $MinY
@Map.Object[$P8].AddPoint $Ser2X $MinY
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].Delete 1
@Window.Refresh
@Map.Paste
@Map.SelectLayer ID20000
@Map.AddNodes 30
@Map.DeselectAll
Перевірка | Очистить удаленные объекты
@Map.SelectAll
Вигляд | Показати позначені
$MC=@Map.Count
$N=0
@Map.DeselectAll
%Pochatok
$N=$N+1
$LID=@Map.Object[$N].LayerID
@If ($LID=10000) then @Goto %Next
$NomerT=@Map.Object[$N].Parameter[91]
@Map.SelectObject $N
@Map.Selected.Cut
@Map.Paste
$ParentObj=@Map.ParentObject $N
@if $ParentObj=$P1 then @Dialog.Message Точка $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P2 then @Dialog.Message Точка $NomerT знаходиться на півночі ділянки
@if $ParentObj=$P3 then @Dialog.Message Точка $NomerT знаходиться на північному сході ділянки
@if $ParentObj=$P4 then @Dialog.Message Точка $NomerT знаходиться на сході ділянки
@if $ParentObj=$P5 then @Dialog.Message Точка $NomerT знаходиться на південному сході ділянки
@if $ParentObj=$P6 then @Dialog.Message Точка $NomerT знаходиться на півдні ділянки
@if $ParentObj=$P7 then @Dialog.Message Точка $NomerT знаходиться на південному заході ділянки
@if $ParentObj=$P8 then @Dialog.Message Точка $NomerT знаходиться на заході ділянки
@Map.DeselectAll
%Next
@if $N<$MC then @Goto %Pochatok

Автор:  Виталий [ 22 сен 2015 12:23 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

[quote="fendak"]Написав сприпт, який автоматично визначає в якій стороні світу знаходиться межовий знак

Подскажите пожалуйста, что сделать что б прописывало стороні света в параметр ну например "Опис місцезнаходження МежЗнака" (Спасибо)

Автор:  fendak [ 23 сен 2015 20:22 ]
Заголовок сообщения:  Re: Библиотека полезных скриптов

замість
@if $ParentObj=$P1 then @Dialog.Message Точка $NomerT знаходиться на північному заході ділянки
...
напишіть
@if $ParentObj=$P1 then $S=північному заході
...(аналогічно для усіх інших сторін світу)
@Text.Add $S

і в кінці скрипта добавте
$S=@Text.Text
;створюємо параметр ID7000581
$S=@Map.Parameters.Get ID7000581
@if $S= then @Map.Parameters.Add 7000580 5 Список сторін світу
;добавляєм параметр ID7000581 в список доступних шару XML : Земельна ділянка
$S=@Map.Layers.GetValidParameters ID70005
@Map.Layers.SetValidParameters ID70005 $S ID7000581
@Map.SelectLayer ID70005
$obj=@Map.SelectedObject
@Map.Object[$obj].Parameter[ID7000580] $Res

В результаті в шарі ХМЛ Земельна ділянка добавиться новий параметр (ID7000581), куди буде записано список сторін світу для усіх точок ділянки. Номер строки в списку відповідатиме номеру точки.

Страница 6 из 15 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/