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

Mapx Масштаб и координаты + БД(Решено)

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
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);

По поводу пользователей: О, да! это наш крест Smile
вопрос обширный, изучите рук-во администратора ингео. Данные из слоёв можно "сливать" "массовыми операциями"(через ингео), данные между соседних таблиц, проще сливать средствами СУБД , написав несложненький 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    Заголовок сообщения: Ответить с цитатой

APopov писал(а):

Знал ведь про это, но почему - то думал, что строку подключения к бд я пишу и для семантики и для графики.Как я теперь понимаю, настройки подключения к БД(mssql) у меня прописаны в ODBC DNS.А я 1 DNS создал и выбирал для всех бекапов базы Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

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


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