Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Трансформация объектов

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей
Предыдущая тема :: Следующая тема  
Автор Сообщение
Ed777



Зарегистрирован: 28.08.2008
Сообщения: 57
Откуда: Беларусь

СообщениеДобавлено: Вт 02 Апр 2013 14:08    Заголовок сообщения: Трансформация объектов Ответить с цитатой

Требуется переместить с участка территории набор объектов на другой участок. Объекты лежат в разных слоях одной карты.
Есть встроенное средство Правка\Объект\Переместить. Но оно плохо тем, что нельзя задать точное смещение по Х, Y. Также эта команда переместит объекты в пределах только одного слоя...
Есть предложения Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
СергейТ



Зарегистрирован: 17.06.2005
Сообщения: 44
Откуда: Новосибирск

СообщениеДобавлено: Вт 02 Апр 2013 21:22    Заголовок сообщения: Ответить с цитатой

Если нужно перемещать все объекты слоя, то можно воспользоваться Сервис/Трансформация карты...
Или переместить все, а не нужные удалить в последствии.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Ср 03 Апр 2013 09:45    Заголовок сообщения: Re: Трансформация объектов Ответить с цитатой

Ed777 писал(а):
что нельзя задать точное смещение по Х, Y...
Не могу согласиться с данным тезисом.
МОЖНО и совсем не сложно.
Поможет АВТОМАТИЧЕСКОЕ ПОДРАВНИВАНИЕ (клавиша F3).
Автоматически этот режим отключен, но достаточно его один раз включить в режиме редактирования любого объекта.
Ещё потребуется вспомогательный объект. Проще всего отрезок. Один конец соответствует изначальным координатам, другой - новым.
Выделяем объекты которые будем перемещать.
Выбираем в контекстном меню команду "Переместить объект(ы)".
Указываем исходную точку (первый конец отрезка), указываем результирующую точку (второй конец отрезка). Всё.
Все объекты будут перемещены по указанному вектору.
Одна проблемка может всплыть.
Если в этих объектах существуют контуры с одинаковыми точками (две точки подряд с абсолютно одинаковыми координатами), то из этой пары первая точка будет перемещена, а вторая останется в исходной позиции.
Это было обнаружено во всех версиях ИнГЕО 4.4.0.ххх

_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ed777



Зарегистрирован: 28.08.2008
Сообщения: 57
Откуда: Беларусь

СообщениеДобавлено: Ср 03 Апр 2013 13:03    Заголовок сообщения: Re: Трансформация объектов Ответить с цитатой

Сергей Попов писал(а):
Ed777 писал(а):
что нельзя задать точное смещение по Х, Y...
Не могу согласиться с данным тезисом.
МОЖНО и совсем не сложно.
Поможет АВТОМАТИЧЕСКОЕ ПОДРАВНИВАНИЕ (клавиша F3).
Автоматически этот режим отключен, но достаточно его один раз включить в режиме редактирования любого объекта.
Ещё потребуется вспомогательный объект. Проще всего отрезок. Один конец соответствует изначальным координатам, другой - новым....

Спасибо за совет!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ed777



Зарегистрирован: 28.08.2008
Сообщения: 57
Откуда: Беларусь

СообщениеДобавлено: Ср 03 Апр 2013 13:26    Заголовок сообщения: Ответить с цитатой

СергейТ писал(а):
Если нужно перемещать все объекты слоя, то можно воспользоваться Сервис/Трансформация карты...
Или переместить все, а не нужные удалить в последствии.

Проблема в том, что нужно перемещать объекты в границах заданного участка территории (X1,Y1-X2,Y2). Объекты лежат в одной карте в разных слоях. Слоёв порядка 20. Через штатное средство "Правка\Объект\Переместить" придётся 20 раз переключаться между слоями и заново выделять участок с объектами...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Ср 03 Апр 2013 14:39    Заголовок сообщения: Ответить с цитатой

Ed777 писал(а):
... придётся 20 раз переключаться между слоями и заново выделять участок с объектами...
Увы, да.
Либо писать модуль, который возьмёт на себя эту рутину, либо писать разработчикам, чтобы они включили в штатные функции новые возможности - а) чтобы набор объектов позволял работать с объектами нескольких слоёв, и б) операции (перемещение, копирование, поворот) могли выполняться ещё и над объектами из набора. Сейчас только с выделенныеми объектами.
В этом случае рутины меньше, но всё равно есть - надо пробежаться по 20-ти слоям, выбрать нужные объекты и добавить в набор.
Я поставлю вопрос иначе: как в ваши слои эти объекты попадают?
Если их приходится регулярно закачивать из обменных файлов, то решение упрощается при помощи дополнительной (промежуточной) базы.
Пустая база - в неё закачиваете обменные файлы, оптом всё перемещаете и опять делаете обменный файл, который закачиваете в рабочую базу.
Этот трюк возможен, если только в обменном файле все объекты необходимо перемещать.

_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ed777



Зарегистрирован: 28.08.2008
Сообщения: 57
Откуда: Беларусь

СообщениеДобавлено: Чт 04 Апр 2013 10:41    Заголовок сообщения: Ответить с цитатой

Сергей Попов писал(а):
Ed777 писал(а):
... придётся 20 раз переключаться между слоями и заново выделять участок с объектами...
Увы, да.
Либо писать модуль, который возьмёт на себя эту рутину, либо писать разработчикам, чтобы они включили в штатные функции новые возможности - а) чтобы набор объектов позволял работать с объектами нескольких слоёв, и б) операции (перемещение, копирование, поворот) могли выполняться ещё и над объектами из набора. Сейчас только с выделенныеми объектами.
В этом случае рутины меньше, но всё равно есть - надо пробежаться по 20-ти слоям, выбрать нужные объекты и добавить в набор.
Я поставлю вопрос иначе: как в ваши слои эти объекты попадают?

Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины... Crying or Very sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Чт 04 Апр 2013 14:36    Заголовок сообщения: Ответить с цитатой

Ed777 писал(а):
Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины...
Последняя надежда помочь в вашем вопросе.
Я сделаю предположения и если условия совпадают, то решение есть.
Я и сам понимаю что это маловероятно.
И так.
Допустим обновился планшет. Очень важно, что обновление происходит в границах прямоугольной территории, параллельной осям координат.
Это упрощает проверку, типа Xmin<x<Xmax.
Ещё важно - как обрабатываются объекты на границе исправленной подложки? Которые частично тут, частично там.
Варианты:
1. Такие объекты необходимо целиком оставить неизменными, или целиком изменять. Для этого варианта у меня нет решения. Писать модуль.
2. Изменять только те координаты, которые попали в границы изменённой подложки. Это приведёт к деформации объектов, но именно этот случай уже имеет своё решение в ИнГЕО.

Поможет использование ФУНКЦИИ в ТРАНСФОРМАЦИИ КАРТЫ.
Там есть заготовка:
Код:
' процедура трансформации координат
sub convert
   OutX = InX
   OutY = InY
   OutConvexity = InConvexity
end sub

Вроде тут всё понятно. Convexity - кривизна дуг или 0 для отрезков.
Можно сразу выбрать все 20 слоёв.
Надо в формулу вставить условие, проверяющее попадание координаты к прямоугольник изменённой подложки и формулу трансформации.
Больше мне добавить нечего.

_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
СергейТ



Зарегистрирован: 17.06.2005
Сообщения: 44
Откуда: Новосибирск

СообщениеДобавлено: Чт 04 Апр 2013 16:25    Заголовок сообщения: Ответить с цитатой

Интересно, есть ли возможность в данном скрипте сделать анализ на попадание точки в выбранный объект? Это бы решило задачу. Обрисовал зону изменений, выбрал объект, запустил трансформацию и готово. Возможно что это просто мечты...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Чт 04 Апр 2013 16:36    Заголовок сообщения: Ответить с цитатой

Ed777 писал(а):
Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины... Crying or Very sad

В последней сборке ИнГео 4.6 бета 2 добавлена возможность выделять объекты из всех видимых слоев.

Выделяете многоугольником, потом двигаете.

Ссылка: http://integro.ru/ingeo/downloads

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ed777



Зарегистрирован: 28.08.2008
Сообщения: 57
Откуда: Беларусь

СообщениеДобавлено: Пт 05 Апр 2013 18:23    Заголовок сообщения: Ответить с цитатой

Михаил Власов писал(а):
Ed777 писал(а):
Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины... Crying or Very sad

В последней сборке ИнГео 4.6 бета 2 добавлена возможность выделять объекты из всех видимых слоев.
Выделяете многоугольником, потом двигаете.
Ссылка: http://integro.ru/ingeo/downloads

Это замечательно. Смущает только что "бета"...
Когда она вырастет в устоявшуюся версию, чтоб зря заранее не внедрять в подразделениях Question
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Алексей Васильев



Зарегистрирован: 20.05.2009
Сообщения: 105
Откуда: Самара

СообщениеДобавлено: Пн 08 Апр 2013 21:12    Заголовок сообщения: Есть такая партия! Ответить с цитатой

Есть у меня такой модуль! Написал его года три назад для аналогичных целей. Была задача натянуть, точнее - выправить, старую карту (скрюченную по требованиям особистов советской эпохи) на космоснимок. Модуль может: 1) просто двигать. 2) радиально масштабировать относительно точки, возможно с поворотом на неявно заданный угол. 3) поворачивать на явно заданный (в градусах) угол. 4) масштабировать относительно произвольной вертикальной или горизонтальной оси, 5) отражать зеркально относительно Х или Y (если нужно от архитектурных карт переходить к бытовым и обратно).
Принцип действия: задаешь исходную точку на векторной карте (можно вручную ввести координаты, можно ткнуть мышкой - циферки введуться в окошечко и останутся там), целевую точку (на космоснимке, тоже можно вручную, можно мышкой), и также указываешь центр поворота (если радиальное масштабирование или поворот), выделяешь один слой, говоришь "Поехали", потом, не меняя циферек в окошечках, выделяешь следующий слой, и так далее. Циферки можно записать на бумажечку, и продолжить завтра. Если циферки будут теми же, то все объекты преобразуются идентично, и останутся точно взаимоувязанными - можно не опасаться отрывов тротуаров от проезжих частей и проч..
Готов поделиться бэзДвозДмэзДно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Вт 09 Апр 2013 12:47    Заголовок сообщения: Re: Есть такая партия! Ответить с цитатой

Алексей Васильев писал(а):
Есть у меня ... Готов поделиться бэзДвозДмэзДно.
Что для этого требуется?
_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Алексей Васильев



Зарегистрирован: 20.05.2009
Сообщения: 105
Откуда: Самара

СообщениеДобавлено: Вт 09 Апр 2013 17:34    Заголовок сообщения: Re: Есть такая партия! Ответить с цитатой

Сергей Попов писал(а):
Что для этого требуется?

Сообщите куда послать. Хотел было выложить в реестр модулей, но там, если по всем правилам, долго и канительно. Но если будет много заказов - выложу туда.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Михаил Власов



Зарегистрирован: 14.02.2005
Сообщения: 580
Откуда: ИНТЕГРО

СообщениеДобавлено: Ср 10 Апр 2013 07:05    Заголовок сообщения: Re: Есть такая партия! Ответить с цитатой

Алексей Васильев писал(а):
Хотел было выложить в реестр модулей, но там, если по всем правилам, долго и канительно. Но если будет много заказов - выложу туда.

"Долго и канительно" - это сделать архив и разместить сообщение с архивом в http://www.integro.ru/forum/viewforum.php?f=9

Правила не сложные и, скорее, рекомендательные.

Алексей, делитесь уже Smile. Лучше разместить не по правилам, чем из-за правил не размещать. Ценность не в оформлении, а в ваших наработках.

P.S. Вы вроде как уже публиковались в реестре модулей...

_________________
С уважением, Михаил Власов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Алексей Васильев



Зарегистрирован: 20.05.2009
Сообщения: 105
Откуда: Самара

СообщениеДобавлено: Ср 10 Апр 2013 17:09    Заголовок сообщения: Re: Есть такая партия! Ответить с цитатой

Выложил. По многочисленным просьбам трудящихся, так сказать. Но прошу не судить строго за некоторую неэстетичность - делалось сугубо для личного пользования
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB