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