| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		gargon
 
 
  Зарегистрирован: 14.12.2006 Сообщения: 14
 
  | 
		
			
				 Добавлено: Пт 11 Янв 2008 18:08    Заголовок сообщения: Перемещение рисованного объекта | 
				     | 
			 
			
				
  | 
			 
			
				Необходимо рисовать некоторый объект на карте (IIngeoPaintSurface), после чего этот объект будет изменять свои координаты, поэтому должен быть отображен в другом месте, а предыдущий рисунок должен быть затерт. Проще говоря, должна быть реализована анимация на карте. Затирание объекта полной перерисовкой карты не допустимо, так как частота перемещения объекта высокая и будет возникать мерцание экрана.
 
Есть ли какие-нибудь методы копирования участка карты, чтобы в дальнейшем его можно было восстановить?
 
C уважением, Артур Никифоров, НПЦ Инфотранс | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Вс 13 Янв 2008 01:41    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Если в качестве перемещающегося объекта используется обычный пространственный объект ИнГео, то достаточно просто менять его координаты - ИнГео сама перерисует нужные участки.
 
Если же Вы все-таки решили сами управлять процессом перерисовки, то обратите внимание на свойство Surface.DC - можете использовать его напрямую посредством Windows API.
 
От себя же рекомендую не заморачиваться и использовать способ, описанный мной в первом абзаце. Мы одно время баловались с трамваем, который ездил туда-сюда по заданному маршруту на карте - перерисовка не напрягала, мерцания практически не было заметно. _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		gargon
 
 
  Зарегистрирован: 14.12.2006 Сообщения: 14
 
  | 
		
			
				 Добавлено: Вт 15 Янв 2008 14:10    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Да но в приведенном вами первом методе будут производится постоянные обращения к базе - а это трафик, что нас не устраивает... | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Азаматов Азамат Хадисович
 
 
  Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
  | 
		
			
				 Добавлено: Ср 23 Янв 2008 21:28    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Большого трафика не будет. Ингео кэширует информацию об объектах. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		gargon
 
 
  Зарегистрирован: 14.12.2006 Сообщения: 14
 
  | 
		
			
				 Добавлено: Пн 28 Янв 2008 16:53    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| А как убрать изменение курсора при вызове IIngeoMapObjects.UpdateChanges? А то не очень красиво,  когда курсор мигает каждые 2 секунды. Предполагаю, что никак | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Азаматов Азамат Хадисович
 
 
  Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
  | 
		
			
				 Добавлено: Вт 29 Янв 2008 20:24    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Тогда только через Surface.DC либо как вариант создать свое окно с картинкой из Ингео | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Борис Салтыков
 
  
  Зарегистрирован: 19.05.2008 Сообщения: 42 Откуда: angarsk / msk
  | 
		
			
				 Добавлено: Чт 18 Фев 2010 14:26    Заголовок сообщения: Перерисовка изменившихся подписей | 
				     | 
			 
			
				
  | 
			 
			
				Как быть если подпись отображает динамически изменяемое значение семантического поля, ведь при изменении значения даже нажатие F5 
 
(перерисовка) не приводит к обновлению подписи. Помогает только дисконнект-коннект, что не хотелось бы.
 
 
Наблюдение: если я обновляю значение через паспорт ингео (вызывается по ctrl-1), то F5 помогает увидеть новое значение в подписи, а если значение меняет внешняя программа (прямо в базе), то F5 бессилен
 
 
т.е. нужна какая-то супер перерисовка, обновляющая кэш, но не требующая дисконнекта-коннекта | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		APopov
 
 
  Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
  | 
		
			
				 Добавлено: Чт 18 Фев 2010 16:26    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				естественно, что данные не отобразатся. 
 
если вы хотите менять семантику и видеть ее изменение в Инего, вы должны менять эту семантику используя api Ингео. _________________ ОАО "Самара-Информспутник",
 
   инженер-программист Попов Артем | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Алексей В. Бастриков
 
 
  Зарегистрирован: 02.06.2008 Сообщения: 118 Откуда: ООО "Инфопроект", г. Екатеринбург
  | 
		
			
				 Добавлено: Сб 20 Фев 2010 17:30    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| Если установить Surface.Pen.Mode = pmNotXor, то при нечетном вызове PaintContour контур рисуется, при четном - затирается. При этом перерисовки карты не происходит. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		RuslanG
 
  
  Зарегистрирован: 10.07.2005 Сообщения: 171 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Ср 24 Фев 2010 11:39    Заголовок сообщения: Re: Перерисовка изменившихся подписей | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Борис Салтыков писал(а): | 	 		  | ...нужна какая-то супер перерисовка, обновляющая кэш, но не требующая дисконнекта-коннекта | 	  
 
Нужно сбросить кэш у таблицы и перерисовать экран после изменения в базе.
 
Пример на VBS: 	  | Код: | 	 		  // Сбрасываем кэш таблицы 
 
dim aTable 
 
set aTable = ActiveDb.SemTableFromID("000100000403") 
 
aTable.DropCache 
 
 
// Перерисовываем окно карты 
 
MainWindow.MapWindow.Invalidate | 	  
 
 
Не рекомендуется менять значения напрямую в базе. Используйте API ИнГео. _________________ С уважением, Руслан Гадеев
 
Видео уроки ИнГео
 
Документация ИнГео
 
Обновления ИнГео
 
Интегропедия | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Борис Салтыков
 
  
  Зарегистрирован: 19.05.2008 Сообщения: 42 Откуда: angarsk / msk
  | 
		
			
				 Добавлено: Чт 25 Фев 2010 14:00    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| спасибо, помогло | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |