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

Использование demo версии GisToolKit 14

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Использование demo версии GisToolKit 14, Вопрос по осуществимости некоторых функций
 
Добрый день!
Хотим на демо DLL для Windows создать полноценное самостоятельное приложение с использованием Qt 6.4.0.
Надеемся, что это возможно.
Спасибо.

P.S. Запрашиваем комментарии и разъяснение связанные с формированием QImage из демо DLL по Ногинску для примера, пример взят с форума GIS c формированием в файл BMP работает. Нужен еще комментарий в части, нужно ли тратить время на данное изготовление примеров на демо версии или корректнее купить FREE Gis Tool Kit 14 для Windows 64, Qt 6.4.0.

Спасибо, Александр.
 
DLL не являются демо. При наличии лицензии на выполнение приложения или сборка приложения была на Gis Tool Kit 14 Free работа идет в полном режиме с любой картой.
 
Извините, не очень точно задал вопрос, использовал метод mapPaintToXImage и получил 0.

Пример кода прилагается ниже.

libinst = NULL;

   QString t = "D:\\QtOborontest\\Common\\Dll\\X64\\gis64acces.dll";


   HINSTANCE libinst = ::LoadLibraryA(t.toLatin1().data());


   HMAP (WINAPI * lpmapfn)(const char *, int);


  (FARPROC&) lpmapfn = ::GetProcAddress(libinst,QString("mapOpenMapUn").toLatin1().data());


   hmap = NULL;


   hmap = (*lpmapfn)((char*)L"D:\\QtOborontest\\noginsk.sitx",0);


   HMAP hmap_1;


   hmap_1 = mapOpenMapUn(L"D:\\QtOborontest\\noginsk.sitx",0);


   mapSetViewType(hmap, 6);
    mapSetViewType(hmap_1, 6);


   HIMAGE hImage = 0;
   HIMAGE hImage_1 = 0;
   RECT MapRect = {-500,-500,1700,1700};


   HIMAGE (WINAPI * lpmapfn1)(long int, long int);


   (FARPROC&) lpmapfn1 = ::GetProcAddress(libinst,QString("mapCreateImageEx").toLatin1().data());




   hImage = (*lpmapfn1)(700, 700);


   hImage_1 = mapCreateImageEx(8300, 8300);


   //mapCloseImage(hImage);
   long int  (WINAPI * lpmapfn2)(HIMAGE image, HMAP hMap, RECT* rect, POINT* position);


   POINT pointconer = {1,1};


   (FARPROC&) lpmapfn2 = ::GetProcAddress(libinst,QString("mapDrawImageMap").toLatin1().data());




   err2 = (*lpmapfn2)(hImage, hmap, &MapRect, 0);
   POINT s={500,500};


   err2 = mapDrawImageMap(hImage_1, hmap_1, &MapRect, 0);
   XIMAGEDESC imagedesc;
   imagedesc.Depth = 32;
   imagedesc.CellSize = 4;
   imagedesc.Width = 2200;
   imagedesc.Height = 2200;
   imagedesc.RowSize = 2200 *imagedesc.CellSize;
   imagedesc.Point = new char[imagedesc.Width * imagedesc.Height * 4];


   HPAINT hpaint;


   HPAINT hpaint_1;


   HPAINT (WINAPI * lpmapfn3)(HMAP hMap);


   (FARPROC&) lpmapfn3 = ::GetProcAddress(libinst,QString("mapCreatePaintControl").toLatin1().data());
   // _MAPIMP long int _MAPAPI mapPaintToXImagePro(HMAP hMap, XIMAGEDESC * imagedesc, long int erase,
   //                                              long int x, long int y, RECT * rect, HPAINT hpaint);
   hpaint = (*lpmapfn3)(hmap);


   hpaint_1 = mapCreatePaintControl(hmap_1);


   long int  (WINAPI * lpmapfn4)(HIMAGE image, XIMAGEDESC* ximage, RECT* rect, POINT* offset);


   (FARPROC&) lpmapfn4 = ::GetProcAddress(libinst,QString("mapViewImageToXImage").toLatin1().data());


   // err4 = (*lpmapfn4)(hImage, &imagedesc, 0, 0);


   // err4 = mapViewImageToXImage(hImage_1, &imagedesc, &MapRect, &s);
   err5=mapPaintToXImage(hmap_1, &imagedesc,1,1,&MapRect);
   
   //  err5=mapCopyPaintControlToXImage(hpaint_1,&imagedesc );
   
   // err5 = mapPaintToXImage(hmap_1,&imagedesc, 500, 500,0);


   // err2 =  mapPaintAndSelectToXImage(hmap, &imagedesc,1, 1, &MapRect, 0, 0);


   HDC hdc_1 =  mapGetImageDC(hImage_1);


  err1  =  mapSaveImageToBMP(hdc_1, &MapRect, "bibi.bmp");


   QImage image((uchar*) imagedesc.Point, 2200, 2200, QImage::Format_RGB32);


   QRectF rectf= {0,0,200,200};
   QRectF rectf2= {300,0,200,200};


   QPainter p(&image);
   p.begin(&image);
   //p.drawImage(rectf,image);
   p.drawText(rectf,"Отрисовка!");
   p.end();


   bufout = image ;
   QPainter p1(&bufout);
   p1.begin(&bufout);
   //p.drawImage(rectf,image);
   p1.drawText(rectf2,"Отрисовка!");
   p1.end();
 
mapPaintToXImage возвращает ноль, если один из параметров - адресов структур или HMAP равен нулю
или RECT задает пустую область.

Дополнительную информацию можно получить, есть перед выполнением задачи открыть диагностический протокол через mapOpenDiagnostics.
 
Как было сказано выше, демо-версии не существует.
Все версии (в т.ч. Free) полнофункциональные. При отсутствии лицензии просто не могут быть открыты определенные карты.
Подробнее - см. Условия использования программного обеспечения для ознакомления.

В Вашем коде нет проверки, открылась ли карта или нет. Добавьте проверку значения, возвращаемого mapOpenMapUn.

Цитата
Oleg Belenkov написал:
Дополнительную информацию можно получить, есть перед выполнением задачи открыть диагностический протокол через mapOpenDiagnostics.

Подробнее тут.


Для понимания политики лицензирования рекомендую посмотреть отличия версии Free от стандартной лицензии GIS ToolKit, а также о том, что такое "лицензия на выполнение пользовательских приложений".

Кроме того, обращаю Ваше внимание на то, что библиотек версии Free не существует (библиотеки ничем не отличаются для стандартной лицензии и лицензии Free). Использование режима Free возможно только при использовании компонентов GIS ToolKit Free в среде Embarcadero, либо при использовании ActiveX-компонентов GIS ToolKit Active Free.
Возможность работы в режиме Free в любых других вариантах компиляции приложения (в т.ч. MAPAPI+Qt) решается индивидуально при приобретении GIS ToolKit Free.
 
Да, спасибо, все получилось.  
Страницы: 1
Читают тему (гостей: 1)



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

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