Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 12:48

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 23 сен 2015 22:30 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
fendak писал(а):
замість
@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), куди буде записано список сторін світу для усіх точок ділянки. Номер строки в списку відповідатиме номеру точки.



Параметр создает но список пуст пишет $Res

Подскажите гда ошибка

$ParentObj=@Map.ParentObject $N
@if $ParentObj=$P1 then $S знаходиться на північному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на півночі ділянки
@if $ParentObj=$P1 then $S знаходиться на північному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на сході ділянки
@if $ParentObj=$P1 then $S знаходиться на південному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на півдні ділянки
@if $ParentObj=$P1 then $S знаходиться на південному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на заході ділянки
@Map.DeselectAll
%Next
@if $N<$MC then @Goto %Pochatok
$S=@Text.Text
@Text.Add $S
;створюємо параметр ID2000081
$S=@Map.Parameters.Get ID2000081
@if $S= then @Map.Parameters.Add 2000080 5 Список сторін світу
;добавляєм параметр ID2000081 в список доступних шару IN4 : Земельна ділянка
$S=@Map.Layers.GetValidParameters ID20000
@Map.Layers.SetValidParameters ID20000 $S ID2000081
@Map.SelectLayer ID20000
$obj=@Map.SelectedObject
@Map.Object[$obj].Parameter[ID2000080] $Res


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 23 сен 2015 22:52 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Этот код
@if $ParentObj=$P1 then $S знаходиться на північному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на півночі ділянки
@if $ParentObj=$P1 then $S знаходиться на північному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на сході ділянки
@if $ParentObj=$P1 then $S знаходиться на південному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на півдні ділянки
@if $ParentObj=$P1 then $S знаходиться на південному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на заході ділянки


равносилен последней строке
@if $ParentObj=$P1 then $S знаходиться на заході ділянки

Если в $Res ничего не вносилось, то и параметр будет пустой
@Map.Object[$obj].Parameter[ID2000080] $Res

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 24 сен 2015 07:17 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Dmitry_Zolotar писал(а):
Этот код
@if $ParentObj=$P1 then $S знаходиться на північному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на півночі ділянки
@if $ParentObj=$P1 then $S знаходиться на північному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на сході ділянки
@if $ParentObj=$P1 then $S знаходиться на південному сході ділянки
@if $ParentObj=$P1 then $S знаходиться на півдні ділянки
@if $ParentObj=$P1 then $S знаходиться на південному заході ділянки
@if $ParentObj=$P1 then $S знаходиться на заході ділянки


равносилен последней строке
@if $ParentObj=$P1 then $S знаходиться на заході ділянки

Если в $Res ничего не вносилось, то и параметр будет пустой
@Map.Object[$obj].Parameter[ID2000080] $Res


А как внести в $Res.
помогите пожалуйста разобраться. Очень много кроков на участке. (Спасибо)


Вложения:
Screenshot_1.jpg
Screenshot_1.jpg [ 8.29 Кб | Просмотров: 52532 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 24 сен 2015 18:59 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
$ParentObj=@Map.ParentObject $N
@if $ParentObj=$P1 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P2 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P3 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P4 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P5 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P6 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P7 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P8 then $S=межовий знак $NomerT знаходиться на північному заході ділянки
@Map.DeselectAll
@Text.Add $S
%Next
@if $N<$MC then @Goto %Pochatok
@Text.Delete 1
$Res=@Text.Text
;створюємо параметр ID2000081
$P=@Map.Parameters.Get ID2000081
@if $P= then @Map.Parameters.Add 2000081 5 Список сторін світу
;добавляєм параметр ID2000081 в список доступних шару IN4 Ділянка
$P=@Map.Layers.GetValidParameters ID20000
@Map.Layers.SetValidParameters ID20000 $P ID2000081
@Map.SelectLayer ID20000
$obj=@Map.SelectedObject
@Map.Object[$obj].Parameter[ID2000081] $Res

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 04 ноя 2015 11:17 
Эксперт
Эксперт

Зарегистрирован:
04 ноя 2010 12:28
Сообщения: 76
Откуда: Київ
Створив скрипт який виносить підписи обєктів, що лежать на ламаній і ровертає їх по ходу ламаної.
Можливо хтось підправить алгоритм.

====================================================
;порядковий номер параметру, підпис з якого буде винесено
$parampidpys=1
;
;---------------------точкові обєкти у список 1
$S=@Map.SelCount
@If $S<=0 @Break виділійть пікети що лежать на лінії
$list=@Map.Selected.List
@Text[1].Text $list
$n=@Text[1].Count
@Text[1].Save d:\\object.txt
@Map.DeselectAll
@Dialog.WaitBox Выделите полилинию
;
;-----------------------вибір полілінії
$line=@Map.SelectedObject
;@if $line<>1 then @Break почніть спочатку
$m=@Map.Object[$line].Count
@if $m<2 then @Break почніть спочатку і виділіть лінію $line $m
;-----------------------точки лінії у список 2
$j=1
%line
$XL=@Map.Object[$line].Point[$j].X
$XL=%Library.ReplaceComma $XL
$XL=@RoundTo $XL 3
$YL=@Map.Object[$line].Point[$j].Y
$YL=%Library.ReplaceComma $YL
$YL=@RoundTo $YL 3
$ZL=@Map.Object[$line].Point[$j].Z
$ZL=%Library.ReplaceComma $ZL
$ZL=@RoundTo $ZL 3
@Text[2].Add $XL $YL $ZL
$j=$j+1
@if $j>$m then @Goto %dali else @Goto %line
%dali
@Progress.Start $N ОБРОБЛЕНО
;@Text[2].Save d:\\text2.line.txt
;-----------------------перебір пікетів
$i=1
%Start
@map.DeselectAll
$O=@Text[1].Line[$i]
;@Map.Object[$O].Select
$XO=@Map.Object[$O].Point[1].X
$XO=%Library.ReplaceComma $XO
$XO=@RoundTo $XO 3
$YO=@Map.Object[$O].Point[1].Y
$YO=%Library.ReplaceComma $YO
$YO=@RoundTo $YO 3
$ZO=@Map.Object[$O].Point[1].Z
$ZO=%Library.ReplaceComma $ZO
$ZO=@RoundTo $ZO 3
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$j1=1
%poshuk
$j2=$j1+1
@if $j2>$m then $j2=$j2-2
$p1=@Text[2].Line[$j1]
$p2=@Text[2].Line[$j2]
$x1=@StringPart 1 $p1
$y1=@StringPart 2 $p1
$x2=@StringPart 1 $p2
$y2=@StringPart 2 $p2
;@Dialog.Message $xo $yo||$x1 $y1
@if ($x1=$xo) and ($y1=$yo) then @goto %est else @goto %nextp
%est
$dx=$x2-$x1
$dy=$y2-$y1
$kut=$dy/$dx
$kut=@Calc ArcTg($kut)
$kut=abs($kut*180/3.1415)
@if ($dx>0) and ($dy>0) then $kut=$kut
@if ($dx>0) and ($dy<0) then $kut=360-$kut
@if ($dx<0) and ($dy>0) then $kut=180-$kut
@if ($dx<0) and ($dy<0) then $kut=180+$kut
$kut=3600+900-$kut*10
$kut2=$kut+1800
;@Dialog.Message i=$i j1=$j1 j2=$j2 m=$m kut=$kut z=$zo
@if $kut>=2700 then @goto %priamo else @goto %plus180
%priamo
@Map.Object[$I].Caption[$parampidpys] 0 0 0 $kut 0
;@Dialog.Message priamo
@goto %nextp
%plus180
;----беремо попередній відрізок а не наступний
@if $j1<>1 then $j1=$j1-1
$j2=$j1+1
$p1=@Text[2].Line[$j1]
$p2=@Text[2].Line[$j2]
$x1=@StringPart 1 $p1
$y1=@StringPart 2 $p1
$x2=@StringPart 1 $p2
$y2=@StringPart 2 $p2
$dx=$x2-$x1
$dy=$y2-$y1
$kut=$dy/$dx
$kut=@Calc ArcTg($kut)
$kut=abs($kut*180/3.1415)
@if ($dx>0) and ($dy>0) then $kut=$kut
@if ($dx>0) and ($dy<0) then $kut=360-$kut
@if ($dx<0) and ($dy>0) then $kut=180-$kut
@if ($dx<0) and ($dy<0) then $kut=180+$kut
$kut=3600+900-$kut*10
$kut2=$kut+1800
@Map.Object[$I].Caption[$parampidpys] 0 0 0 $kut2 512
$j1=$j1+1
;--------------------------------------------------
%nextp
$j1=$j1+1
@if $j1>$m then @Goto %nextobj else @Goto %poshuk
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%nextobj
@Progress.StepBy
$i=$i+1
@if $i>$n then @Goto %end else @Goto %Start
%end
;--------------закінчено перебір пікетів
@Progress.Stop
@Window.Refresh
@Text[1].Clear
@Text[2].Clear
;
@Break DONE







===============================

В процесі помітив наступну помилку:
Якщо у прикріпленому файлі сворити підписи по існуючим точковим обєктам - то все ок.
Коли дозібрати пікети вручну на вузли лінії - то по них не виносяться підписи.

вирішення проблеми: всі пікети у чистий файл і перенумерація ID потім вставляємо лінію з наступним ID.

Можливо це тільки у мене така проблема з програмою.


Вложения:
test-pidpys.dmf [21.13 Кб]
Скачиваний: 862
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 11 ноя 2015 19:29 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Пропоную скрипт, який миттєво знаходить потрібний обмінник в базі з десятки тисяч обмінників.

Скрипт складається із трьох кнопок. Перша перевіряє всі обмінники в папці з базою і складає їх список, записуючи в текствовий файл D:\Baza.txt

$WorkPapka=@Dialog.SelectFolder Виберіть папку з файлами для опрацювання
@if $WorkPapka= then @break
@Text[1].FolderListTree *.in4 $WorkPapka
$FC=@Text[1].Count
@Text[1].Save D:\Baza.txt
@Break Оброблено $FC обмінників


Друга переводить базу в скорочений варіант, залишаючи тільки назву файлу без його шляху.

@Text[1].Load D:\Baza.txt
$FC=@Text[1].Count
$I=0
%Loop
$I=$I+1
$FN=@Text[1].Line[$I]
$FNShort=@ExtractFileName $FN
@Text[2].Add $FNShort
@if $I<$FC then @Goto %Loop
@Text[2].Save D:\BazaShort.txt
@Dialog.Message Виконано!


Ну і третя кнопка є, власне, для швидкого пошуку обмінників в базі і їх відкриття. При цьому шукаються як IN4 так і XML

@Text[1].Load D:\BazaShort.txt
@Text[2].Load D:\Baza.txt
$KN=@Dialog.Ask Кадастровый номер для пошуку в базі Default=4621283300020010000
$SeartIndex=@Text[1].IndexOf $KN.in4
@if $SeartIndex=0 @Dialog.Message Такого файла in4 в базі нема
@if $SeartIndex=0 then @Goto %Next
$Seart=@Text[2].Line[$SeartIndex]
@FileOpen $Seart
%Next
$SeartIndex2=@Text[1].IndexOf $KN.xml
@if $SeartIndex2=0 @break Такого файла xml в базі нема
$Seart2=@Text[2].Line[$SeartIndex2]
@FileOpen $Seart2


Тобто, першими двома кнопками ми індексуємо базу. Це робиться один раз, якщо база стабільна, без додавання нових обмінників чи час від часу, якщо нові обмінники додаються в базу. І в процесі роботи користуємося тільки третьою кнопкою.

Зручність, також, в тому, що можна відкрити публічну карту, клацнувши два рази на ділянці, отримати її кадастровий номер і, не закриваючи це вікно, запустити скрипт і переписати кадастровий номер у пошукове вікно.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 12 ноя 2015 15:27 
Специалист
Специалист

Зарегистрирован:
04 янв 2015 17:12
Сообщения: 41
Пане fendak, це стосується обмінників в папці (ін4, хмл), чи обмінників в карті (дмф)...
Так може хто знає як мені зробити так щоб карта з обмінниками ін4 швидше відкривалась і не вибивало вікна аналіз карти???


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 12 ноя 2015 15:45 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
це стосується обмінників IN4 та XML у папці.
Аналіз карти відбувається на закладці Інфо та Сбір. На закладці Правка - ні.
Тому можна використати такий скрипт:

%Events.OnFileOpen
@SelectTab 2
%Events.OnAdd
Вигляд | Показати позначені


Добавити його треба в Карта - Скрипт обработки собитий
В результаті після кожного відкриття карти автоматично активуватиметься закладка Правка. Плюс, при вставці об'єктів на карту вони відразу будуть показані на екрані.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 12 ноя 2015 19:09 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
GeKo писал(а):
Пане fendak, це стосується обмінників в папці (ін4, хмл), чи обмінників в карті (дмф)...
Так може хто знає як мені зробити так щоб карта з обмінниками ін4 швидше відкривалась і не вибивало вікна аналіз карти???

Аналіз карти відбувається довго коли в параметрах є функція PARENT. В стандартному Normal.dmf, який використовується для відкриття in4 є така функція в параметрі ID106

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 13 ноя 2015 15:51 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Dmitry_Zolotar писал(а):
Аналіз карти відбувається довго коли в параметрах є функція PARENT. В стандартному Normal.dmf, який використовується для відкриття in4 є така функція в параметрі ID106

Діма, може якщо ділянок не дуже багато...
Але коли на карті 225000 об'єктів, то це нічого не дало. Все одно аналіз карти відбувається безкінечно. Хоч я видалив функцію PARENT в параметрі ID106 на dmf-карті з обмінниками.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 13 ноя 2015 17:46 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Можливо ще є параметри з цією функцією?

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 16 ноя 2015 08:48 
Гуру
Гуру

Зарегистрирован:
01 фев 2013 17:16
Сообщения: 109
Микола доброго дня. Спасибі за скрипт. Дуже корисна річ. Особливо коли терміново треба знайти певну ділянку. А як би зробити, щоб також знайти ділянку в ДМФ?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 16 ноя 2015 15:02 
Гуру
Гуру

Зарегистрирован:
06 июл 2009 08:22
Сообщения: 443
Откуда: Старобельск
http://geosystema.net/forum/viewtopic.php?p=18653#18653

_________________
П. Вечеров


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 23 ноя 2015 11:34 
Специалист
Специалист

Зарегистрирован:
04 май 2011 13:47
Сообщения: 35
fendak писал(а):
Пропоную скрипт, який миттєво знаходить потрібний обмінник в базі з десятки тисяч обмінників.


Класний скрипт!!! Чи можна в ньому зробити пошук по частині слова. Наприклад: "Бур-Кравцов ОА.xml" а пошук по частині слова "Кравцов"??? Чи можливо зробити вибір по чому шукати Кадастровий номер чи Прізвище можливо ще й Адресу добавити (тут напевно складно буде)??? В когось є варіанти як це зробити.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 19 апр 2016 08:43 
Гуру
Гуру

Зарегистрирован:
05 окт 2015 23:49
Сообщения: 133
Откуда: Черкаська область
Можливо комусь буде корисно:
Якщо у базі файлів не повний кадастровий номер і взагалі невідомо чи є портібна ділянка... чи в *.xml, або кварталі ін4 у яких більше однієї ділянки, хоч і 1250... а потрібно знайти ділянку Кирієнко Євгенії Ігорівни...
Для пошуку слів, чи тексту із декількох слів, українською мовою у середині файлів для вказаної папки та всіх внутрішніх папок у файлах: *.in4, *.xml, *.uws на сьогоднішній день користуюсь програмою DocFetcher.
Аналоги: AVSearch та Findtxt - відпочивають поряд з DocFetcher. (Інтерфейс російською мовою).
При першому додаванні папки для індексації у переліку "Розширення файлів" - Звичайний текст: добавляємо із випадаючого списку розширення наших файлів (*.in4, *.xml, *.uws) та запускаємо індексацію.
Потім тільки у полі пошуку вводимо те що хочемо знайти і отримаємо у верхньому вікні список файлів у яких є такі слова... а у нижньому попередній перегляд тексту всередині цього файлу і переглядяємо по черзі усі варіанти...
Можете самі почитать:
http://docfetcher.sourceforge.net/ru/index.html


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 15  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB