Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 20 ноя 2017 19:00

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Однотипное заполнение адреса земельного участка
СообщениеДобавлено: 26 дек 2015 12:38 
Специалист
Специалист

Зарегистрирован:
13 окт 2015 10:14
Сообщения: 16
Возникла проблема.
При создании карты населенного пункта ( 2000 усадеб), работу вели в разное время несколько исполнителей. В результате адрес участков заполнен по разному.
Например:
с.м.т.Дніпровське, вулиця Центральна,45
смт. Дніпровське, вул.Західна,54
ну и много разных вариаций, хотя структура н.п.,вулиця,номер,квартира, не нарушена
Возможно ли пакетное приведение к однотипному представлению.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Однотипное заполнение адреса земельного участка
СообщениеДобавлено: 26 дек 2015 17:29 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 466
в Бібліотеці корисних скриптів є скрипт, написаний Дмитром Золотарем:

Код:
$SearchText=@Dialog.Ask Введіть текст для пошуку
$STL=@Calc Length("$SearchText")
@if $STL=0 then @Break Введіть не пустий текст
$ReplaceText=@Dialog.Ask Введіть текст для заміни
$Path=@Dialog.Ask Шлях до папки Default=С:\Digitals
@Text[0].FolderListTree *.dmf $Path
$MapCount=@Text[0].Count
@if $MapCount=0 then @Break Файл(и) не знайдені
$FileNumber=0
%LoopEachFile
$FileNumber=$FileNumber+1
$MapFileName=@Text[0].Line[$FileNumber]
@FileOpen $MapFileName
$OC=@Map.Count
$PC=@Map.Parameters.Count
$CC1=0
$I=0
%LoopObject
$I=$I+1
$J=0
$L=@Map.Object[$I].Layer
$LD=@Map.Layers.Get $L
@Dialog.Message $LD
%LoopParameter
$J=$J+1
$S=@Map.Object[$I].Parameter[$J]
$CC2=0
%Repeat
$IP=@Calc pos("$SearchText","$S")
@if $IP=0 then @Goto %Continue1
$S=@Calc delete("$S",$IP,$STL)
$S=@DequoteText $S
$S=@Calc insert("$S","$ReplaceText",$IP)
$S=@DequoteText $S
$CC2=$CC2+1
@if $CC2>100 then @Goto %Continue1
@Goto %Repeat
%Continue1
@if $CC2=0 then @Goto %Continue2
$CC1=$CC1+1
@Map.Object[$I].Parameter[$J] $S
%Continue2
@if $J<$PC then @Goto %LoopParameter
@if $I<$OC then @Goto %LoopObject
@if $CC1>0 then @Map.SaveToFile $MapFileName
@if $CC1>0 then @Text[1].Add $MapFileName змінений
@if $CC1=0 then @Text[1].Add $MapFileName не змінений
@CloseMap
@if $FileNumber<$MapCount then @Goto %LoopEachFile
@Text[1].Save $Path\Changes.log
@Dialog.Message див. лог-файл $Path\Changes.log


Він здійснює заміну тексту в усіх dmf файлах у вказаній папці.
Вам потрібно замінити с.м.т. на смт. і так усі інші написи, які не підходять.
Якщо файли не dmf, а IN4 чи XML тоді треба змінити рядок
@Text[0].FolderListTree *.dmf $Path
поставививши замість dmf те, що треба

Можна було б і у повністю автоматичному режимі, але тоді треба знати весь перелік ваших несходжень.
;

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Однотипное заполнение адреса земельного участка
СообщениеДобавлено: 14 фев 2016 18:36 
Специалист
Специалист

Зарегистрирован:
16 фев 2009 23:04
Сообщения: 10
А можна описати біль детально роботу скрипту! Бо в мене щось не вийшло Масове перейменування(((


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Однотипное заполнение адреса земельного участка
СообщениеДобавлено: 15 фев 2016 20:22 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 466
якщо у вась всі ділянки на одній карті, тоді просто користуйтеся командою ЗАМІНИТИ. Наведений вище скрипт виконує ту ж саму операцію, але по окремих обмінниках.

Можна, звичайно зробити скрипт, який би сам зводив усі види написання типу проїзду до одного виду. Але для чього треба створити довідник неправильних і правильного типу написання.

Наприклад,
шукати:
с.м.т.
селище міського типу
селище

замінювати на:
смт.

І так по кожному типу проїзду.
Але з цим треба трохи посидіти, згадати (чи подивитися по вашій карті) всі можливі неправильні і правильні варіанти і створити довідник.

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


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 7


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

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