| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 26 Окт 2012 14:44    Заголовок сообщения: Mapx Масштаб и координаты + БД(Решено) | 
				     | 
			 
			
				
  | 
			 
			
				Вопрос 1(Решено): 
 
  как изменить масштабирование в MapX ?Хочу при масштабировании колёсиком мыши переходить по определённым масштабам.При стандартном масштабировании масштаб меняется в 2 раза относительно текущего.
 
   Была мысль использовать ExecuteIngeoAction, но я понятия не имею как называются , да и не знаю Action относится  к меню Ингео или к панели инструментов.
 
Вопрос 2(Решено, неактуально): 
 
   Нужно выводить координаты мыши на карте.Советуют использовать MapWindow.Surface.PointDeviceToWorld,но я не понимаю какие аргументы ей передавать.2 координаты мыши относительно окошка mapx и ещё 2 откуда?
 
Вопрос 3(Решено):
 
   где могут храниться семантические данные?При импорте карты в формате Ингео в новой базе новых таблиц не появилось, хотя в исходной базе они есть, а в новой видны в проводнике БД.
 
Вопрос 4(Решено):
 
как правильно восстановить базу?Удалил табличку в Ингео, восстановил базу в SQL Manager Studio , но Ингео безразлично к такому бекапу.Не видит полей и значений в восстановленных табличках.
 
(Оказалось Ингео не ту базу использовал изза днс. В администраторе БДЕ создал новый системный днс с указанием открывать нужную мне базу и всё решилось)
  Последний раз редактировалось: rastiniak (Пт 09 Ноя 2012 16:37), всего редактировалось 7 раз(а) | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 26 Окт 2012 15:00    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				...
  Последний раз редактировалось: rastiniak (Чт 08 Ноя 2012 17:49), всего редактировалось 4 раз(а) | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		APopov
 
 
  Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
  | 
		
			
				 Добавлено: Вт 30 Окт 2012 19:46    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				см апи ингео (мапх): "C:\Program Files\Integro\InGeo\IngeoIntfs.chm" 
 
 
в частности см. MapWindow.Navigator.Navigate(aCenterX: Double; aCenterY: Double; aZoomScale: Double); 
 
 
по поводу событий изменения масштаба см там же 
 
IIngeoMapWindowSink.ViewChangeComplete 
 
 
По поводу координат мыши 
 
IIngeoMapEditorsSink.MouseMove(TIngeoShiftState aShift, long aX, long aY);
 
а затем MapWindow.Surface.PointDeviceToWorld(aDevX: Longint; aDevY: Longint; aWorldX: Double; aWorldY: Double);
 
 
По поводу пользователей: О, да! это наш крест  
 
вопрос обширный, изучите рук-во администратора ингео. Данные из слоёв можно "сливать" "массовыми операциями"(через ингео), данные между соседних таблиц, проще сливать средствами СУБД , написав несложненький SQL-запрос _________________ ОАО "Самара-Информспутник",
 
   инженер-программист Попов Артем | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Вт 06 Ноя 2012 16:38    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Спасибо, но по первому вопросу немного не то.Можно конечно при ивенте колёсика мыши ловить координату текущего центра видимой области карты и затем позиционироваться к ней же  в определённом масштабе, но уж как то навороченно.
 
 А по второму я не понимаю =)  .PointDeviceToWorld - что это ?Что он конвертирует? Может быть я пойму если узнаю, что этот метод возвращает. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Чт 08 Ноя 2012 14:01    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Код: | 	 		  | PointDeviceToWorld in_window_x, in_window_y, out_map_x, out_map_y | 	  
 
 
Первые параметры входные - координаты точки в окне карты в пикселах.
 
 
Вторые параметры выходные - результирующие координаты соответствующей точки карты в метрах территории.
 
 
Ну и ссылка по теме: http://www.integro.ru/forum/viewtopic.php?t=1107 _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Чт 08 Ноя 2012 15:10    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Спасибо большое, помогло уточнение про выходные параметры.Привык пользоваться функциями, возвращающими значение, а не записывающими его в переменные.
 
 Правда неожиданно узнал что в нашей карте координаты не значат ничего, а следовательно их можно и не выводить. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		APopov
 
 
  Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
  | 
		
			
				 Добавлено: Чт 08 Ноя 2012 17:42    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				вопрос 1) : в параметрах ингео можно задать коэффициент мастабирования, полагаю, если после этого законнектится МапХ он будет использовать новое значение
 
 
Вопрос 3): семантические данные хранятся там где задал их расположение создатель базы (администратор), если вы и есть администратор, то смотрите в сервере данных ингео, с свойствах базы. может что новое узнаете здесь
 
 
Вопрос 5): непонятно что вы имеете ввиду. проект в ингео - это лишь набор карт из данной базы ингео. _________________ ОАО "Самара-Информспутник",
 
   инженер-программист Попов Артем | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Чт 08 Ноя 2012 17:49    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Вопрос 5 - вы на него ответили уже , я его сократил =) Сейчас совсем уберу.
 
Вопрос 3 - фишка в том , что после создания в ингео проекта и территорий в базе ms sql появляются системные таблицы Ингео, а после импорта карт - ничего не появляется, хотя в Ингео можно посмотреть импортированные таблицы.Буду разбираться.
 
 
А по первому -  из масштаба 73 я перейду в 146, поменяв коэффициент суть останется - после произвольного масштабирования я каждый раз буду переходить по новым масштабам.А хотелось бы по одному и тому же списку масштабов.
 
   Спасибо | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Михаил Власов
 
  
  Зарегистрирован: 14.02.2005 Сообщения: 580 Откуда: ИНТЕГРО
  | 
		
			
				 Добавлено: Пт 09 Ноя 2012 13:52    Заголовок сообщения: Re: Mapx Масштаб и координаты + БД | 
				     | 
			 
			
				
  | 
			 
			
				 	  | rastiniak писал(а): | 	 		  Вопрос 1: 
 
  как изменить масштабирование в MapX ?Хочу при масштабировании колёсиком мыши переходить по определённым масштабам.При стандартном масштабировании масштаб меняется в 2 раза относительно текущего.
 
   Была мысль использовать ExecuteIngeoAction, но я понятия не имею как называются , да и не знаю Action относится  к меню Ингео или к панели инструментов.
 
 | 	  
 
 
 	  | Код: | 	 		  function Get_next_scale(scale, scales)
 
   dim first, last
 
   first = LBound(scales)
 
   last = UBound(scales)
 
   
 
   if scale >= scales(last) then
 
      Get_next_scale = scales(last)
 
      exit function
 
   end if
 
   
 
   dim i
 
   for i = last - 1 to first step -1
 
      if scale >= scales(i) then
 
         Get_next_scale = scales(i + 1)
 
         exit function
 
      end if
 
   next   
 
   
 
   Get_next_scale = scales(first)
 
end function
 
 
 
function Get_prev_scale(scale, scales)
 
   dim first, last
 
   first = LBound(scales)
 
   last = UBound(scales)
 
   
 
   if scale <= scales(first) then
 
      Get_prev_scale = scales(first)
 
      exit function
 
   end if
 
   
 
   dim i
 
   for i = first + 1 to last
 
      if scale <= scales(i) then
 
         Get_prev_scale = scales(i - 1)
 
         exit function
 
      end if
 
   next   
 
   
 
   Get_prev_scale = scales(last)
 
end function
 
 
 
function Get_current_scale
 
   Get_current_scale = Application.MainWindow.MapWindow.Surface.Projection.ZoomScale
 
end function
 
 
sub Set_current_scale(scale)
 
   with Application.MainWindow.MapWindow.Navigator
 
      .Navigate .CenterX, .CenterY, scale
 
   end with
 
   ' В Delphi следует делать:
 
   '      with Application.MainWindow.MapWindow.Navigator as IIngeoMatrixProjectionNavigator do begin
 
   '         Navigate CenterX, CenterY, scale
 
   '      end
 
end sub
 
 
dim Scale_steps
 
Scale_steps = Array(1/10000, 1/5000, 1/1000, 1/500)
 
 
sub Next_scale()
 
   Set_current_scale Get_next_scale(Get_current_scale, Scale_steps)
 
end sub
 
 
 
sub Prev_scale()
 
   Set_current_scale Get_prev_scale(Get_current_scale, Scale_steps)
 
end sub | 	  
 
При прокрутке колеса вперед вызывать Next_scale, назад - Prev_scale.
 
 
Список масштабов Scale_steps должен быть упорядочен от мелкого к крупному. _________________ С уважением, Михаил Власов. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		APopov
 
 
  Зарегистрирован: 19.06.2006 Сообщения: 347 Откуда: Самара
  | 
		
			
				 Добавлено: Пт 09 Ноя 2012 15:11    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				Вопрос 1) суть в том, что концепция ингео позволяет хранить графику и семантику в двух разных базах, даже в разных СУБД, например:
 
 
графика : Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mgis_central;Data Source=komp\sql2008r2
 
 
семантика : PARADOX, D:\temp\relief\sem
 
 
Смотрите настройки важей базы в сервере данных ингео _________________ ОАО "Самара-Информспутник",
 
   инженер-программист Попов Артем | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 09 Ноя 2012 16:38    Заголовок сообщения: Re: Mapx Масштаб и координаты + БД | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Михаил Власов писал(а): | 	 		  | ... | 	  
 
Пасибо | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		rastiniak
 
 
  Зарегистрирован: 05.10.2012 Сообщения: 20
 
  | 
		
			
				 Добавлено: Пт 09 Ноя 2012 16:42    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				
 
Знал ведь про это, но почему - то думал, что строку подключения к бд я пишу и для семантики и для графики.Как я теперь понимаю, настройки подключения к БД(mssql) у меня прописаны в ODBC DNS.А я 1 DNS создал и выбирал для всех бекапов базы    | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |