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

Повернуть часть карты

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



Зарегистрирован: 02.12.2008
Сообщения: 81

СообщениеДобавлено: Вт 02 Дек 2008 16:20    Заголовок сообщения: Повернуть часть карты Ответить с цитатой

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

Естественно там много слоев, дорого, строени, разные коммуникации.

как можно повернуть часть карты в которых входит множество слоев?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

СообщениеДобавлено: Вт 02 Дек 2008 18:25    Заголовок сообщения: Ответить с цитатой

Задача не простая
Я так понимаю слои распространяются не только на этот населенный пункт.
У меня есть 2 варианта, но оба трудоемкие

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

второй - выгрузить данный населенный пункт в IDF
создать новую базу и загрузить его туда
провести ряд трансформаций карт
поскольку Ингео трансформирует относительно точки (0,0) нужно выбрав базовую точку переместить ее вместе со всеми картами к нулю, повернуть на нужный угол а потом вернуть в нужную коодинату.
а потом загрузить опять в рабочую базу.

Преимущества второго способа
1. Рабочая база пока не тронута
2. Возможность отката, исправления трансформации
3. работа сразу со всеми объектами
Только сначала потренируйтесь на копии рабочей базы

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
sirwalrus



Зарегистрирован: 02.12.2008
Сообщения: 81

СообщениеДобавлено: Ср 03 Дек 2008 12:00    Заголовок сообщения: Ответить с цитатой

Да слои и на другие населенные пункты распространены...
А нельзя перенести не в другой проект а на другие слои?
повернуть,а потом объединить нвые слои с материнскими?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

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

можно и такой вариант
Делаете копии слоев (пустых) аналогично всем требуемым
копируете туда все объекты
А потом трансформируете вновь созданные карты как я описал
Трансформация позволяет выбрать отдельные слои

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
sirwalrus



Зарегистрирован: 02.12.2008
Сообщения: 81

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

ДА наверное это оптимальный вариант.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

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

Просто делая idf вы пожете за 1 раз "скопировать" все вписанные в окно объекты.
А в случае со слоями придется это делать послойно вручную
больше разницы нет

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
andreichernov



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

СообщениеДобавлено: Пн 15 Дек 2008 10:02    Заголовок сообщения: Ответить с цитатой

Для поворота части карты стандартными средствами ГИС попробуйте вызвать Сервис..Трансформация карты, затем выбрать в качестве типа преобразования "Функция" и там написать скрипт поворота типа
следующего.
' процедура трансформации части карты от 0 до 1000 по обеим осям
' на 30 Градусов в математической системе координат

sub convert
MinX = 0
MaxX = 1000
MinY = 0
MaxY = 1000
fi = 30.0/180*3.1416
if MinX <inX and InX < MaxX and InY < MinY and MinY < MaxY then
OutX = Cos( fi ) * InX + Sin(fi) * InY
OutY = - Sin( fi ) * InX + Cos ( fi ) * InY
OutConvexity = InConvexity
end if
end sub

Дешево и сердито.
НО БУДЬТЕ КРАЙНЕ ВНИМАТЕЛЬНЫ!
нужно, чтобы все объекты целиком попадали в указанный интервал. Если только часть точек лежит внутри прямоугольника для трансформации, то объект серьезно исковеркается. Причем если у Вас еще и сдвиг на большую величину, то будет огромный объект, который потом зависает при отрисовке и который надо удалять спецскриптами.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
sirwalrus



Зарегистрирован: 02.12.2008
Сообщения: 81

СообщениеДобавлено: Ср 17 Дек 2008 15:55    Заголовок сообщения: Ответить с цитатой

ШИКАРНО!
Спасибо огромное!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
andreichernov



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

СообщениеДобавлено: Ср 17 Дек 2008 17:08    Заголовок сообщения: Ответить с цитатой

andreichernov писал(а):
Для поворота части карты стандартными средствами ГИС попробуйте вызвать Сервис..Трансформация карты, затем выбрать в качестве типа преобразования "Функция" и там написать скрипт поворота типа
следующего.


Сорри, в скрипте ошибка

Верно так
------------
' процедура трансформации части карты от 0 до 1000 по обеим осям
' на 30 Градусов в математической системе координат
sub convert
MinX = 0
MaxX = 1000
MinY = 0
MaxY = 1000
fi = 30.0/180*3.1416
if MinX < InX and InX < MaxX and MInY < InY and InY < MaxY then
OutX = Cos( fi ) * InX + Sin(fi) * InY
OutY = - Sin( fi ) * InX + Cos ( fi ) * InY
OutConvexity = InConvexity
end if
end sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы пользователей Часовой пояс: GMT + 5
Страница 1 из 1

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


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