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

Вывод карты без hdc

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Вывод карты без hdc, Вывод карты без hdc при использовании MAP API
 
Здравствуйте. Есть ли возможность получить картинку карты в массив(память) не прибегая к получению hdc при использовании MAP API?

Описание задачи в общем:
1. Версия Qt 5.5.1
2. ГИС Конструктор Free 11.3.0.
3. Хотелось бы получить область карты в QPixmap(QImage) по указанным координатам, не используя оконные функции с использованием MAP API.
 
Здравствуйте.

Вы можете использовать функции семейства mapPaintToXImage (mapapi.h). Более подробно можно посмотреть в документе «Руководство программиста» п. 3.6.4 «Управление визуализацией и печатью»: http://gistoolkit.ru/download/doc/gisdesigadmdoc.pdf.
 
Цитата
Андрей Коржилов написал:
Здравствуйте.

Вы можете использовать функции семейства mapPaintToXImage (mapapi.h). Более подробно можно посмотреть в документе «Руководство программиста» п. 3.6.4 «Управление визуализацией и печатью»:  http://gistoolkit.ru/download/doc/gisdesigadmdoc.pdf .
Спасибо.
Но функция, которую вы указали, доступна только в X Window-системах, если я правильно понимаю. В windows ее уже нельзя использовать. А хотелось бы, по возможности, использовать один формат функции без #ifdef ...
Изменено: Сергей - 18.10.2017 18:11:45
 
Цитата

Цитата
Сергей написал:
Но функция, которую вы указали, доступна только в X Window-системах, если я правильно понимаю.
Извиняюсь, я не посмотрел виндовые исходники mapapi.h, а в астровском как раз выглядит так:
Код
#ifdef LINUXAPI

 // Вывести изображение карты в XImage (массив)

 // Данная функция реализована для XWindow !

 // Описание структуры XIMAGEDESC в maptype.h

 // hmap - идентификатор открытых данных

 // x,y - координаты левого верхнего угла внутри

 // битовой области XImage для размещения изображения

 // rect - выводимый фрагмент карты

 // При ошибке в параметрах возвращает ноль



  long int _MAPAPI  mapPaintToXImage(HMAP hmap,

                                     XIMAGEDESC * imagedesc,

                                     long int x, long int y,

                                     RECT * rect);


В виндовом заголовочном файле версии v11.3.2 код выглядит аналогично вышеуказанному, а уже в версии v11.12 действительно отсутствует #ifdef
LINUXAPI, но может смутить комментарий о том, что функция реализована только для XWindow:


Код
#endif // LINUXAPI



 // Вывести изображение карты в XImage (массив)

 // Данная функция реализована для XWindow !

.....

_MAPIMP long int _MAPAPI mapPaintToXImage(HMAP hmap, XIMAGEDESC *imagedesc,

                                           long int x, long int y, RECT 
*rect); 
Изменено: Сергей - 19.10.2017 09:01:33 (уточнение версий)
 
Комментарий про XWindows действительно лишний, но функция открыта для windows и linux, поэтому будет работать везде.
Изначально функция действительно была разработана для Linux, но потом адаптировали для Windows.
Страницы: 1
Читают тему (гостей: 1)



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

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