| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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: Есть такая партия! | 
				     | 
			 
			
				
  | 
			 
			
				| Выложил. По многочисленным просьбам трудящихся, так сказать. Но прошу не судить строго за некоторую неэстетичность - делалось сугубо для личного пользования | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |