Получение изображения из классификатора (png/bmp/jpeg), Необходимо получить в виде изображений перечень доступных классификаторов и отобразить их на одном из qt элементов.
Данная функция реализована и для Windows, и для Linux (mapapi.h):
Код
// Вывести изображение карты в XImage (массив)
// hmap - идентификатор открытых данных
// imagedesc - параметры области для размещения изображения
// Описание структуры XIMAGEDESC в maptype.h
// erase - признак очистки области изображения (если равен -2, то изображение рисуется
// поверх имеющегося рисунка без очистки)
// x,y - координаты левого верхнего угла внутри
// битовой области XImage для размещения изображения
// rect - фрагмент для вывода отображения
// func - функция отображения объекта
// parm - параметры изображения
// data - метрика для отображения
// colors - количество цветов
// palette - палитра
// При ошибке в параметрах возвращает ноль
_MAPIMP long int _MAPAPI mapPaintExampleObjectByFuncDataToXImage(HMAP hMap, XIMAGEDESC *imagedesc,
long int x, long int y,
RECT *rect, long int func,
const char *parm, POLYDATAEX* data,
long int colors, COLORREF *palette);
_MAPIMP long int _MAPAPI mapPaintExampleObjectByFuncDataToXImageEx(HMAP hMap, XIMAGEDESC * imagedesc,
long int erase, long int x, long int y,RECT * rect,
long int func, const char* parm, POLYDATAEX* data);
Спасибо за ответ есть еще вопрос. Есть классификатор с объектами у которых свои code - идентификаторы. Как их отрисовать представленными функциями, ведь в них отсутствует code или excode. (признаки объекта в классификаторе)???
/ Отобразить образец вида объекта по номеру записи // в классификаторе объектов (incode) // hmap - идентификатор открытой карты // hrsc - идентификатор классификатора открытой карты // hdc - идентификатор контекста устройства вывода, // rect - координаты клиентской области окна вывода (размер окна) // При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapPaintExampleRscObject(HMAP hmap, HRSC hrsc, HDC hdc, RECT *rect, long int incode);
нашел похожую функцию для моих целей, но есть одно но hdc - в astra linux smolensk hdc нет.
Попробуйте mapPaintExampleRscObject с указанием в hdc 0, а потом mapCopyPaintControlToXImage
Иногда такое получается.
первая функция возвращает не ноль. во второй надо указать TPaintControl. В astra linux smolensk и qt нет такого класса. КАК ОТОБРАЗИТЬ образец по записи не используя виндовые функции??????????????