Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ed777

Зарегистрирован: 28.08.2008 Сообщения: 57 Откуда: Беларусь
|
Добавлено: Вт 02 Апр 2013 14:08 Заголовок сообщения: Трансформация объектов |
|
|
Требуется переместить с участка территории набор объектов на другой участок. Объекты лежат в разных слоях одной карты.
Есть встроенное средство Правка\Объект\Переместить. Но оно плохо тем, что нельзя задать точное смещение по Х, Y. Также эта команда переместит объекты в пределах только одного слоя...
Есть предложения  |
|
Вернуться к началу |
|
 |
СергейТ
Зарегистрирован: 17.06.2005 Сообщения: 44 Откуда: Новосибирск
|
Добавлено: Вт 02 Апр 2013 21:22 Заголовок сообщения: |
|
|
Если нужно перемещать все объекты слоя, то можно воспользоваться Сервис/Трансформация карты...
Или переместить все, а не нужные удалить в последствии. |
|
Вернуться к началу |
|
 |
Сергей Попов
Зарегистрирован: 05.03.2005 Сообщения: 299 Откуда: г. Тольятти - Самара - Копейск
|
Добавлено: Ср 03 Апр 2013 09:45 Заголовок сообщения: Re: Трансформация объектов |
|
|
Ed777 писал(а): | что нельзя задать точное смещение по Х, Y... | Не могу согласиться с данным тезисом.
МОЖНО и совсем не сложно.
Поможет АВТОМАТИЧЕСКОЕ ПОДРАВНИВАНИЕ (клавиша F3).
Автоматически этот режим отключен, но достаточно его один раз включить в режиме редактирования любого объекта.
Ещё потребуется вспомогательный объект. Проще всего отрезок. Один конец соответствует изначальным координатам, другой - новым.
Выделяем объекты которые будем перемещать.
Выбираем в контекстном меню команду "Переместить объект(ы)".
Указываем исходную точку (первый конец отрезка), указываем результирующую точку (второй конец отрезка). Всё.
Все объекты будут перемещены по указанному вектору.
Одна проблемка может всплыть.
Если в этих объектах существуют контуры с одинаковыми точками (две точки подряд с абсолютно одинаковыми координатами), то из этой пары первая точка будет перемещена, а вторая останется в исходной позиции.
Это было обнаружено во всех версиях ИнГЕО 4.4.0.ххх _________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
 |
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-ти слоям, выбрать нужные объекты и добавить в набор.
Я поставлю вопрос иначе: как в ваши слои эти объекты попадают?
Если их приходится регулярно закачивать из обменных файлов, то решение упрощается при помощи дополнительной (промежуточной) базы.
Пустая база - в неё закачиваете обменные файлы, оптом всё перемещаете и опять делаете обменный файл, который закачиваете в рабочую базу.
Этот трюк возможен, если только в обменном файле все объекты необходимо перемещать. _________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
 |
Ed777

Зарегистрирован: 28.08.2008 Сообщения: 57 Откуда: Беларусь
|
Добавлено: Чт 04 Апр 2013 10:41 Заголовок сообщения: |
|
|
Сергей Попов писал(а): | Ed777 писал(а): | ... придётся 20 раз переключаться между слоями и заново выделять участок с объектами... | Увы, да.
Либо писать модуль, который возьмёт на себя эту рутину, либо писать разработчикам, чтобы они включили в штатные функции новые возможности - а) чтобы набор объектов позволял работать с объектами нескольких слоёв, и б) операции (перемещение, копирование, поворот) могли выполняться ещё и над объектами из набора. Сейчас только с выделенныеми объектами.
В этом случае рутины меньше, но всё равно есть - надо пробежаться по 20-ти слоям, выбрать нужные объекты и добавить в набор.
Я поставлю вопрос иначе: как в ваши слои эти объекты попадают?
|
Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины...  |
|
Вернуться к началу |
|
 |
Сергей Попов
Зарегистрирован: 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 слоёв.
Надо в формулу вставить условие, проверяющее попадание координаты к прямоугольник изменённой подложки и формулу трансформации.
Больше мне добавить нечего. _________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
 |
СергейТ
Зарегистрирован: 17.06.2005 Сообщения: 44 Откуда: Новосибирск
|
Добавлено: Чт 04 Апр 2013 16:25 Заголовок сообщения: |
|
|
Интересно, есть ли возможность в данном скрипте сделать анализ на попадание точки в выбранный объект? Это бы решило задачу. Обрисовал зону изменений, выбрал объект, запустил трансформацию и готово. Возможно что это просто мечты... |
|
Вернуться к началу |
|
 |
Михаил Власов

Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
|
Добавлено: Чт 04 Апр 2013 16:36 Заголовок сообщения: |
|
|
Ed777 писал(а): | Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины...  |
В последней сборке ИнГео 4.6 бета 2 добавлена возможность выделять объекты из всех видимых слоев.
Выделяете многоугольником, потом двигаете.
Ссылка: http://integro.ru/ingeo/downloads _________________ С уважением, Михаил Власов. |
|
Вернуться к началу |
|
 |
Ed777

Зарегистрирован: 28.08.2008 Сообщения: 57 Откуда: Беларусь
|
Добавлено: Пт 05 Апр 2013 18:23 Заголовок сообщения: |
|
|
Михаил Власов писал(а): | Ed777 писал(а): | Появилась более точная подложка и нужно подровнять ранее созданные объекты к ней. Территория большая и много рутины...  |
В последней сборке ИнГео 4.6 бета 2 добавлена возможность выделять объекты из всех видимых слоев.
Выделяете многоугольником, потом двигаете.
Ссылка: http://integro.ru/ingeo/downloads |
Это замечательно. Смущает только что "бета"...
Когда она вырастет в устоявшуюся версию, чтоб зря заранее не внедрять в подразделениях  |
|
Вернуться к началу |
|
 |
Алексей Васильев
Зарегистрирован: 20.05.2009 Сообщения: 105 Откуда: Самара
|
Добавлено: Пн 08 Апр 2013 21:12 Заголовок сообщения: Есть такая партия! |
|
|
Есть у меня такой модуль! Написал его года три назад для аналогичных целей. Была задача натянуть, точнее - выправить, старую карту (скрюченную по требованиям особистов советской эпохи) на космоснимок. Модуль может: 1) просто двигать. 2) радиально масштабировать относительно точки, возможно с поворотом на неявно заданный угол. 3) поворачивать на явно заданный (в градусах) угол. 4) масштабировать относительно произвольной вертикальной или горизонтальной оси, 5) отражать зеркально относительно Х или Y (если нужно от архитектурных карт переходить к бытовым и обратно).
Принцип действия: задаешь исходную точку на векторной карте (можно вручную ввести координаты, можно ткнуть мышкой - циферки введуться в окошечко и останутся там), целевую точку (на космоснимке, тоже можно вручную, можно мышкой), и также указываешь центр поворота (если радиальное масштабирование или поворот), выделяешь один слой, говоришь "Поехали", потом, не меняя циферек в окошечках, выделяешь следующий слой, и так далее. Циферки можно записать на бумажечку, и продолжить завтра. Если циферки будут теми же, то все объекты преобразуются идентично, и останутся точно взаимоувязанными - можно не опасаться отрывов тротуаров от проезжих частей и проч..
Готов поделиться бэзДвозДмэзДно. |
|
Вернуться к началу |
|
 |
Сергей Попов
Зарегистрирован: 05.03.2005 Сообщения: 299 Откуда: г. Тольятти - Самара - Копейск
|
Добавлено: Вт 09 Апр 2013 12:47 Заголовок сообщения: Re: Есть такая партия! |
|
|
Алексей Васильев писал(а): | Есть у меня ... Готов поделиться бэзДвозДмэзДно. | Что для этого требуется? _________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
 |
Алексей Васильев
Зарегистрирован: 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
Правила не сложные и, скорее, рекомендательные.
Алексей, делитесь уже . Лучше разместить не по правилам, чем из-за правил не размещать. Ценность не в оформлении, а в ваших наработках.
P.S. Вы вроде как уже публиковались в реестре модулей... _________________ С уважением, Михаил Власов. |
|
Вернуться к началу |
|
 |
Алексей Васильев
Зарегистрирован: 20.05.2009 Сообщения: 105 Откуда: Самара
|
Добавлено: Ср 10 Апр 2013 17:09 Заголовок сообщения: Re: Есть такая партия! |
|
|
Выложил. По многочисленным просьбам трудящихся, так сказать. Но прошу не судить строго за некоторую неэстетичность - делалось сугубо для личного пользования |
|
Вернуться к началу |
|
 |
|