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

Проблемы с отрисовкой карты в принтерном растровом виде

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1 2 След.
RSS
Проблемы с отрисовкой карты в принтерном растровом виде
 
Добрый день.

Версия Гис Конструктор для Qt Designer(MAPAPIVERSION = 0x111015, MAPACCESSVERSION = 20130912).

Устанавливаю "принтерный растровый" вид отображения карты, но отображается явно экранный вид. Пример кода:
Код
// Устанавка "принтерного растрового" вида отображения карты
const auto r = mapSetViewType(mapHandler, VT_PRINTRST);
const auto rr = mapGetViewType(mapHandler);
qDebug () << Q_FUNC_INFO << "new value:" << rr << "old value:" << r; // rr=VT_PRINTRST

// вызов функции отрисовки
auto errCode = mapPaintToXImage(mapHandler, &imageDescr, 0L, 0L, &rectDraw);
qDebug() << Q_FUNC_INFO << mapGetViewType(mapHandler); // после вызова mapPaintToXImage mapGetViewType возвращает значение = VT_SCREEN
Как отрисовать карту в принтерном виде?

Спасибо.
Изменено: Сергей - 22.10.2019 11:37:33 (растровый -> экранный вид)
 
Под растровым видом Вы подразумеваете экранный?
Для отображения принтерного вида, необходимо еще установить функции обратного вызова, которые будут обращаться к Qt для улучшенного отображения.
Установка функций обратного вызова для принтерно-растрового отображения выполняется при вызове конструктора QDMapView
 
Цитата
Vladimir Letov написал:
Под растровым видом Вы подразумеваете экранный?
Для отображения принтерного вида, необходимо еще установить функции обратного вызова, которые будут обращаться к Qt для улучшенного отображения.
Установка функций обратного вызова для принтерно-растрового отображения выполняется при вызове конструктора QDMapView
Здравствуйте, Владимир.
Да, поправил в вопросе, имеется ввиду экранный вид.
Я не использую визуальные компоненты, поэтому использование QDMapView не подходит, насколько понимаю.

Хочется понять, как это сделать через MAPAPI?

Спасибо.
 
Здравствуйте!      

Для указанной Вами версии ГИС Конструктора, в библиотеке компонентов, отсутствовали функции обратного вызова необходимые для отрисовки принтерно-растрового вида. Для более поздних версий, в случае использования MAPAPI, все равно необходимо вызвать конструктор QDMapView.
 
Цитата
Константин Ганюшин написал:
Для указанной Вами версии ГИС Конструктора, в библиотеке компонентов, отсутствовали функции обратного вызова необходимые для отрисовки принтерно-растрового вида. Для более поздних версий, в случае использования MAPAPI, все равно необходимо вызвать конструктор QDMapView.
Здравствуйте.

А начиная с какой версии появилась эта возможность и как это если что сделать в более новой версии?

Спасибо.
 
Здравствуйте, Сергей!

Данные функции присутствуют в крайней версии ГИС Конструктор 11 (на данный момент не поддерживается), а также в ГИС Конструктор версии 12.
Для инициализации функций можно воспользоваться, например, следующим способом:
- добавить подключение заголовочных файлов qapplication.h и qdmcmp.h;
- вызвать инициализацию QApplication и QDMapView в функции main , главного приложения.

#include <qapplication.h>

#include "mapapi.h"
#include "qdmcmp.h"

int main(int argc, char *argv[])
{
QApplication applicationQt(argc, argv);
  QDMapView();

}

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

 
Цитата
Константин Ганюшин написал:
После данных изменений, будут установлены функции обратного вызова, для отображения принтрено-растрового вида с помощью библиотек qt.
Здравствуйте. Работа с MAPAPI у меня реализована в виде невизуального Qt-плагина, без использования виджетов и используя Qt5, а в 11 версии используется 4 версия Qt, которая несовместима с 5. Можно ли как-то не задействовать виджеты?

В 11 версии, как я понимаю, исходники qdmapcomponents недоступны?

Спасибо.
 
Цитата
Константин Ганюшин написал:
Для указанной Вами версии ГИС Конструктора, в библиотеке компонентов, отсутствовали функции обратного вызова необходимые для отрисовки принтерно-растрового вида.
Доброе утро!

На всякий случай уточню. Вы пишете, что именно в библиотеке компонентов отсутствовали функции обратного вызова.
Могу ли я, используя только MAPAPI, сделать аналогичные манипуляции, которые делаются в конструкторе QDMapView, не используя виджеты и библиотеку компонентов, а максимум модуль Qt5 Gui(в нем как раз доступен функционал по шрифтам и т.п.), настроить себе эти функции обратного вызова?

Спасибо.
 
Здравствуйте, Сергей!

Исходные тесты библиотеки компонентов доступны в составе примеров ГИС Конструктор крайней 11 версии (/usr/share/qt4/examples/gisdesigner11/Sources) и в версии 12 (/usr/share/gisdesigner/examples/Sources).
При установке необходимых функций обратного вызова, аналогично библиотеке графических компонентов, отрисовка с qt5 должна происходить корректно.

 
Цитата
Константин Ганюшин написал:
При установке необходимых функций обратного вызова, аналогично библиотеке графических компонентов, отрисовка с qt5 должна происходить корректно.
Здравствуйте, Константин!

Извините, а не могли бы подсказать, где устанавливаются эти функции обратного вызова? По исходникам я нашел только, где в диалог печати что-то подобное устанавливается, насколько я понял.

Спасибо.
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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