Аналитика

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

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 23 апр 2015 08:35 
Участник
Участник

Зарегистрирован:
27 апр 2014 23:39
Сообщения: 8
Здравствуйте, друзья!

Проблема следующего плана:

Есть очень большой файл, весом в несколько сотен МБ. При загрузке оного, на даже достаточно хорошем среднем ПК - уходит времени много десятков минут. Плюс на внутренние "масштабирования" , "перемещения" до заданного участка - немало времени.

Разбили весь объект на квадраты. Каждый квадрат - замкнутый полигон. Все квадраты в одном файле и в одном и том же параметре имеют порядковый номер.

Есть ли возможность сделать что-либо, чтобы, без ручного "разрезания" и размножения на десятки и сотни файлов, обеспечить открывание только заданного полигона этого файла?
Возможно есть возможность прописать какой-либо макрос (или иную хитрость), чтобы файл при открытии и задании этого параметра - открывался только в требуемых границах?

Условно вопрос иллюстрирован на прикрепленной картинке.

Благодарю, если кто поможет с оным:)


Вложения:
 массиву.bmp
массиву.bmp [ 2.18 Мб | Просмотров: 3039 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 23 апр 2015 10:05 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1028
Откуда: г. Харьков
Без того, чтобы разрезать файл на планшеты, никак. А уж после этого можно попробовать наладить какие-нибудь средства поиска. Например, можно сделать файл, содержащий номенклатуры планшетов и ссылки на их файлы (для этого используется параметр типа Файл). Сюда же можно бросить какой-нибудь минимальный навигационный набор данных: улицы, города, водные объекты, - зависит от масштаба вашей карты. Теперь можно будет открыть файл, найти место, пометить границу планшета, зайти в Инфо и щелкнуть дважды по ссылке на файл. Файл откроется на новой вкладке.

Еще пример автоматизации хранения планшетов, но уже с помощью скриптов смотрите здесь.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 23 апр 2015 13:33 
Участник
Участник

Зарегистрирован:
27 апр 2014 23:39
Сообщения: 8
Благодарю за ответ!

Тогда из сего, если кто подскажет - буду благодарен следующему:
как прописать скрипт, задающий границы обрезки и обрезающий все объекты вне этих границ? Без необходимости создавать полигон, и обрезать вручную через "Сервис"?
Возможно ли сие?:)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь!
СообщениеДобавлено: 30 июл 2015 15:49 
Эксперт
Эксперт

Зарегистрирован:
16 май 2013 11:54
Сообщения: 93
Доброго дня шановні колеги підскажіть будь ласка чи можливо в діджиталі на карті із сіткою планшетів зробити посилання на планшети, які є векторного формату, щоб планшети відображались на карти проте були на карті лише посиланням а самі знаходились десь на компі. В мене проблема в тому що є планшети 500-го масштабу на все місто, розмір цих планшетів 27 гігабайт 86 штук, всіх разом я не можу їх зшити у діджиталі не вистачає памяті для обробки, комп досить потужний. В архітектурі у мене в місті вони працюють в автокаді і програма це дозволяє зробити, а можливо це зробити у Діджиталі? Допоможіть будь ласка!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 31 июл 2015 07:35 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1028
Откуда: г. Харьков
Смотрите ответ выше.
Dmitriy Fedorov писал(а):
... можно сделать файл, содержащий номенклатуры планшетов и ссылки на их файлы (для этого используется параметр типа Файл) ...


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 04 авг 2015 10:34 
Эксперт
Эксперт

Зарегистрирован:
16 май 2013 11:54
Сообщения: 93
Dmitriy Fedorov писал(а):
Еще пример автоматизации хранения планшетов, но уже с помощью скриптов смотрите здесь.

Доброго дня я спробував виконати ці скрипти про те на першому ж скрипті в мене викинуло помилку файли які помилки прикріпив, допоможіть що я роблю не так?
Ще додаю який у мене скрипт:
;нет открытых карт
$N=@MapCount
@If $N<1 @Break
;карта пустая
$N=@Map.Count
@If $N<1 @Break
$I=$N
%Start
;помечаем объект карты с номером $I
@Map.DeselectAll
@Map.SelectObject $I
$L=@Map.Object[$I].LayerID
;помечена не рамка500 - пропускаем
@if $L<>666 @Goto %Skip
;запоминаем имя файла из параметра
$F=@Map.Object[$I].Parameter[ID212]
;помечаем внутри выделеного
Пометить | Внутри помеченного
Карта | Установить рамку
;создаем чистую карту и вставляем в нее помеченные объекты
Правка | Копировать
Файл | Создать
Правка | Вставить
;сохраняем файл
@Map.SaveToFile $F.DMF
;закрываем файл
@FileClose
%Skip
$I=$I-1
;переход к следующему объекту
@if $I>1 @Goto %Start

І додаю свою карту! Допоможіть дуже потрібна!


Вложения:
500-ки чиста.dmf [77.95 Кб]
Скачиваний: 56
 скрипті.jpg
скрипті.jpg [ 78.21 Кб | Просмотров: 2772 ]
 привязкі планшетів.jpg
привязкі планшетів.jpg [ 37.96 Кб | Просмотров: 2772 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 05 авг 2015 11:45 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1028
Откуда: г. Харьков
EIKovtun писал(а):
Доброго дня я спробував виконати ці скрипти про те на першому ж скрипті в мене викинуло помилку файли які помилки прикріпив, допоможіть що я роблю не так?

А что вы ожидали от выполнения скрипта? В статье детально описано, что, где, зачем. Вы уверены, что вам оно подходит?

Может все-таки остановиться на параметре файлового типа?
1. Создайте параметр типа Файл.
2. Присоедините его к слою рамок.
3. Пропишите в каждую рамку ссылку на внешний файл планшета.

Теперь помечайте рамку, далее в Инфо выполняете двойной щелчок на содержимом параметра (где ссылка на файл). Файл должен открыться в новой карте. Попробуйте хотя бы на одной рамке, чтобы оценить полезность для себя.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 06 авг 2015 09:25 
Эксперт
Эксперт

Зарегистрирован:
16 май 2013 11:54
Сообщения: 93
Dmitriy Fedorov писал(а):
А что вы ожидали от выполнения скрипта? В статье детально описано, что, где, зачем. Вы уверены, что вам оно подходит?

Может все-таки остановиться на параметре файлового типа?
1. Создайте параметр типа Файл.
2. Присоедините его к слою рамок.
3. Пропишите в каждую рамку ссылку на внешний файл планшета.

Теперь помечайте рамку, далее в Инфо выполняете двойной щелчок на содержимом параметра (где ссылка на файл). Файл должен открыться в новой карте. Попробуйте хотя бы на одной рамке, чтобы оценить полезность для себя.

Я цей варіант знаю, в цьому варіанті багато потрібно зробити дій, а карту я створюю для диспетчерських аварійних комунальних служб міста, а там сидять жіночки пенсійного віку вони цього не запамятають, хотілось якби було все простіше для них, я хотів поробити ці планшети в мене їх 1860 до них привязати планшети растри, потім коли диспетчеру потрібно зробити заявку на аварію вона ставить де ця аварія відбулася і аварійній службі розруковує планшет 500-ки (раст) все хлопці знають де можна копати і які там комунікації проходять!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 06 авг 2015 13:58 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 603
Откуда: Ліспроект
EIKovtun писал(а):
Я цей варіант знаю...
Наскільки я зрозумів: скрипт має позначити всі об'єкти всередині позначеного об'єкта (obj) з шару ID666 і зберегти їх разом з obj в окрему карту?
Код:
;нет открытых карт
@OpenLog
@Map.BeginUpdate
$N=@MapCount
@If $N<1 @Break
;карта пустая
$N=@Map.Count
@If $N<1 @Break
;визначаєм номер активної карти
$MapName=@Map.Filename
$NumMap=@GetMapNumber $MapName
;позначаєм всі об'єкти в шарі ID666
@Map.DeselectAll
$CountObj=@Map.SelectByParameters -7|666
@If $CountObj=0 then @Break В карті відсутні об'єкти в шарі з ID666
;список позначених в текстовий блок
$List=@Map.Selected.List
@Map.DeselectAll
@Text.Text=$List
$I=1
;создаем чистую карту и вставляем в нее помеченные объекты
$NumTempMap=@FileNew Temp
;активуєм робочу карту
@ActivateMap $NumMap
;перебираєм об'єкти зі списку
;запускаєм прогрес
@Progress.Start $CountObj Перебираю об'єкти в шарі ID666
%Start
@Progress.StepBy
$Obj=@Text.Line[$I]
@Map.SelectObject $Obj
;запоминаем имя файла из параметра
$F=@Map.Object[$Obj].Parameter[ID212]
;помечаем внутри выделеного
;Пометить | Внутри помеченного
@ExecuteMenu EditSelectInsideselected
;Карта | Установить рамку (для чого встановлювати рамку карти?)
;@ExecuteMenu MapDefineFrame
@Map.Copy
;
@Map[$NumTempMap].Paste
;сохраняем файл
@Map[$NumTempMap].SaveToFile C:\Proba\$F.DMF
;очищаєм тимчасову карту від об'єктів
@Map[$NumTempMap].Selected.Delete
@Map.DeselectAll
$I=$I+1
@If $I<=$CountObj then @Goto %Start
;закриваєм тимчасову карту
@CloseMap $NumTempMap
;дозволяєм оновлення карти на екрані
@Map.EndUpdate RefreshAlways
@Progress.Stop
@Dialog.Message Виконано збереження
@CloseLog C:\Proba\Log.txt
Ось цей скрипт, зберігає окремі карти в теці C:\Proba\*.*
1600 шт за 1 хвилину. У Вас проблема в скрипті була в циклі, окрім того: 1600 раз відкрити нову карту, зберегти карту і закрити карту - можна дві сигарети викурити :wink: . Прикріплюю лог-файл, там розберетесь як працює.


Вложения:
Log.txt [1.04 Мб]
Скачиваний: 60
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вопрос: Загрузка отдельного полигона из очень большого файла
СообщениеДобавлено: 07 авг 2015 14:03 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1028
Откуда: г. Харьков
EIKovtun писал(а):
... я хотів поробити ці планшети в мене їх 1860 до них привязати планшети растри, потім коли диспетчеру потрібно зробити заявку на аварію вона ставить де ця аварія відбулася і аварійній службі розруковує планшет 500-ки (растр) ...

Ок. Попробую еще раз сделать попытку понять, что же вы все-таки хотите. :) Не обижайтесь, но постановка задачи у вас та еще: то векторные планшеты, то растровые - пришел к выводу, что все-таки последнее.

В этом случае, вам нужно трансформировать все планшеты (а возможно они уже у вас трансформированные) и вставить их все по ссылке в одну карту (Вставка - Растровое изображение). Растры при этом могут даже находиться на отдельном компьютере (назовем его сервером). Сама карта при этом будет содержать только контура растров (рамочки) и ссылки в параметрах.

В этот же файл можно добавить оси улиц с названиями и/или здания оцифрованные с адресами. Можно еще что-нибудь - контур реки или что там у вас в населенном пункте словом, то, что поможет ориентироваться.
Можно даже грубый растр из гугла скачать и подключить на отдельный слой.

Далее нужно научить производить поиск по адресу (это не сложно: панель Инфо - кнопка Список или через Правка - Найти). После того, как пользователь выйдет на нужный адрес он активирует соответствующий растр, он установит рамку карты и распечатает кусок. Последние действия можно попробовать автоматизировать скриптами.


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

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


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

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


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

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