На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Стандартные органы управления окном карты

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Стандартные органы управления окном карты
 
Здравствуйте, товарищи разработчики!

Подскажите пожалуйста, имеется какая-нибудь недокументированная, а лучше документированная возможность подключить к окну с картой некие дефолтные органы управления, чтобы "из коробки" получить в окне с картой меню, тулбар, статусбар, с которых можно было бы вызывать типовые функции управления картой - панорамирование, масштабирование, смену единиц измерения координат, селекцию, поиск объектов и всякое такое? Наподобие того, как это в GisWebToolkit-е вы сделали - там же не надо всё это самому программировать.
 
Цитата
Сергей Гамов написал:
Здравствуйте, товарищи разработчики!Подскажите пожалуйста, имеется какая-нибудь недокументированная, а лучше документированная возможность подключить к окну с картой некие дефолтные органы управления, чтобы "из коробки" получить в окне с картой меню, тулбар, статусбар, с которых можно было бы вызывать типовые функции управления картой - панорамирование, масштабирование, смену единиц измерения координат, селекцию, поиск объектов и всякое такое? Наподобие того, как это в GisWebToolkit-е вы сделали - там же не надо всё это самому программировать.
Здравствуйте! Предлагаем рассмотреть программу Панорама Мини https://gisinfo.ru/products/mapview_lin.htm

На нашем сайте в разделе Скачать - Программные продукты для Linux https://gisinfo.ru/download_linux/?id=160 можно скачать демонстрационную версию по ссылке.
 
Цитата
Елена Кузнецова написал:
Предлагаем рассмотреть программу Панорама Мини
Ну конечно я её видел. Как раз такое и нужно, но в моём приложении. Я же не просто так написал своё сообщение в разделе ГИС Конструктора, а не в разделе про Панораму Мини.
 
Здравствуйте!

На текущий момент примеры меню и статус-бара с типовыми операциями для работы с картой реализованы в рамках примеров mapview и myfirst, входящих в состав инсталляции ГИС Конструктор.
 
Цитата
Александр Савелов написал:
примеры меню и статус-бара с типовыми операциями для работы с картой реализованы в рамках примеров
Спасибо, конечно, но вопрос-то был совсем не об этом. Как самому написать такое, это и так понятно. Речь шла о том, чтобы воспользоваться готовыми компонентами.
Цитата
Сергей Гамов написал:
Наподобие того, как это в GisWebToolkit-е вы сделали
 
Здравствуйте.
Компонент   QDMapSelectRect после вызова метода StartAction работает так - по первому клику мышью отмечается один угол прямоугольника выделения, при движении мыши перерисовывается прямоугольник выделения и по второму клику отмечается противоположный угол (и посылается соответствующий сигнал). А в десктопных Панорамах при, например, масштабировании по выделенному прямоугольнику, по нажатию LMB отмечается один угол, а по отпусканию - противоположный, перерисовка же идёт при движении мыши с зажатой LMB. Как вы этого добились?
Спасибо.
 
Здравствуйте!
Одним из способов решения данной задачи будет создание собственного класса на основе QDMapSelectRect.

Для данного класса можно выполнить переопределение функций MouseDown, MouseMove и MouseUp на функции, реализующие необходимое поведение.

Ознакомиться с реализацией класса QDMapSelectRect можно в исходных текстах библиотеки компонентов: /usr/share/gisdesigner/examples/Sdk/qmapcomponents/qdmrect.cpp
 
Ага, я ту реализацию видел.
Я маленько по-другому сделал. Не надо никаких собственных классов на основе. Надо законнектиться на SignalMousePress и SignalMouseRelease от QDMapView. В первом обработчике нужно вызвать  у объекта QDMapSelectRect метод MouseUp - это будет эмуляция первого клика мышью. После этого при движении мыши начнёт перерисовываться пунктирная рамка. Во втором обработчике тоже надо вызвать MouseUp - это будет эмуляция второго клика мышью, после этого полетит сигнал SignalAfterBuildRect, далее всё штатно.
Вы, поди, в десктопной Панораме так и сделали?  
Изменено: Сергей Гамов - 02.03.2022 19:52:20
 
Цитата
Сергей Гамов написал:
Ага, я ту реализацию видел.Я маленько по-другому сделал. Не надо никаких собственных классов на основе. Надо законнектиться на SignalMousePress и SignalMouseRelease от QDMapView. В первом обработчике нужно вызвать  у объекта QDMapSelectRect метод MouseUp - это будет эмуляция первого клика мышью. После этого при движении мыши начнёт перерисовываться пунктирная рамка. Во втором обработчике тоже надо вызвать MouseUp - это будет эмуляция второго клика мышью, после этого полетит сигнал SignalAfterBuildRect, далее всё штатно.Вы, поди, в десктопной Панораме так и сделали?  
Приносим извинение, в ближайшее время наш специалист даст ответ.
 
Здравствуйте!

В ГИС Панорама используется отдельная реализация поведения обработчиков сигналов на основе TPanAction из PANAPI (интерфейс средств интерактивного выбора данных и указание способа обработки для создания прикладных задач к ГИС Панорама).

Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности