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

Сохранение области карты в BMP, TIFF вместе с объектами iml

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Сохранение области карты в BMP, TIFF вместе с объектами iml, Не срохраняются объекты, отрисованные через iml, типа документ- вставка
 
Здравствуйте, по Вашему совету отказался от вставки OLE объектов через контейнеры, вместо них использую вставку через IML(объекты типа документ-вставка ms exel, word). Столкулся с проблемой, на карте данные объекты вместе с документами отображаются нормально, но при сохранении их в BMP, TIFF привязанные документы не отрисовываются. Сохраняю функцией LoadMapToPicture(), gtk 11 free крайняя версия с последними библиотеками для gtk11, c builder 6. Как правильно их сохранить, чтобы все отрисовалось???
 
Здравствуйте!

Проблему увидели, разбираемся.
Спасибо за сообщение.
 
Максим, прошу выслать на нашу почту пример карты с проблемным документом-вставкой.
 
Выслал вам на почту, тема: "Пример вставки документа через iml, не сохраняется в bmp".
Какое решение и можно ли поправить для gtk11?
Изменено: Максим Казаровец - 04.04.2018 07:07:45
 
Цитата
Максим Казаровец написал:
Здравствуйте, по Вашему совету отказался от вставки OLE объектов через контейнеры, вместо них использую вставку через IML(объекты типа документ-вставка ms exel, word). Столкулся с проблемой, на карте данные объекты вместе с документами отображаются нормально, но при сохранении их в BMP, TIFF привязанные документы не отрисовываются. Сохраняю функцией LoadMapToPicture(), gtk 11 free крайняя версия с последними библиотеками для gtk11, c builder 6. Как правильно их сохранить, чтобы все отрисовалось???
Цитата
Максим Казаровец написал:
Выслал вам на почту, тема: "Пример вставки документа через iml, не сохраняется в bmp".
Какое решение и можно ли поправить для gtk11?
На присланной вами карте RED.SIT мы не обнаружили специальных объектов типа «документ-вставка» или «документ-врезка», используемых программируемые знаки shape.iml.

Для добавления на карту RED.SIT документа Microsoft Word в ГИС Карта2011 версии 11.13.7 выполнены следующие действия:

1. В классификатор redkit.rsc подключена библиотека программируемых условных знаков shape.iml


2. В классификатор redkit.rsc добавлен условный знак "Врезка карты" в слой "Системный" с ключом S0000000094


3. Для условного знака "Врезка карты" добавлена семантика с кодом 32769. Указанная семантика нужна для хранения ссылки на отображаемый документ


4. На карте создаем объект "Врезка карты". В семантику добавляем имя файла документа Microsoft Word


5. Изображение карты RED.SIT c добавленным объектом "Врезка карты", отображающим таблицу документа Microsoft Word




Тестирование функции LoadMapToPicture:

1. Для тестирования функции LoadMapToPicture используем пример приложения из состава GIS ToolKit версии 11. c:\Program Files (x86)\Borland\CBuilder6\GisTool11\Example\Builder\Rastr\


2. Меняем содержимое функции-отклика на кнопку «Создать растр» приложения c:\Program Files (x86)\Borland\CBuilder6\GisTool11\Example\Builder\Rastr\Rsttest.bpr:

Код
void __fastcall TfrmMain::btnCreateRstClick(TObject *Sender)
{
   //    Сохранить карту в формате BMP, Tiff, RSW
   HMAP hmap = MapView->MapHandle;

   TDFRAME dframe;
   dframe.X1 = 6135785.251904;
   dframe.Y1 = 7430390.784093;

   dframe.X2 = 6162804.093555;
   dframe.Y2 = 7466319.064568;

   int bitcount = 24;
   int scale    = 100000;
   int resolution = 300;
   const char * filename = "Test.rsw";
   const char * filename1 = "Test1.bmp";
   const char * filename2 = "Test2.tif";
   HWND handleMainWin = 0;

   typedef int (WINAPI * F_LoadMapToPicture)(HMAP aMAp, HWND handle,
                                             Maptype::PDFRAME aframe,
                                             int bitcount, int scale, int resolution,
                                             const char * filename, HWND handleMainWin);

   HINSTANCE libinst = 0;

   F_LoadMapToPicture lpfn_LoadMapToPicture = (F_LoadMapToPicture)mapLoadLibrary("GISPICEX.DLL"/*MAPPICEXLIB*/, (unsigned)libinst, "LoadMapToPicture");
   if (lpfn_LoadMapToPicture != 0)
     {
      //    Сохранить карту в формате RSW
      if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename, handleMainWin) != 0)
        {
         ::MessageBox(0, "Процесс выполнен успешно", filename, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
        }

      //    Сохранить карту в формате BMP
      if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename1, handleMainWin) != 0)
        {
         ::MessageBox(0, "Процесс выполнен успешно", filename1, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
        }

      //    Сохранить карту в формате Tiff
      if (lpfn_LoadMapToPicture(hmap, Handle, &dframe, bitcount, scale, resolution, filename2, handleMainWin) != 0)
        {
         ::MessageBox(0, "Процесс выполнен успешно", filename2, MB_OK|MB_TASKMODAL|MB_ICONINFORMATION);
        }
     }
   if (libinst)
      mapFreeLibrary((unsigned)libinst);
}
3. Результат сохраненного изображения карты в файл RSW (d:\data\RedKit\Test.rsw) открываем для контроля в ГИС Карта2011 версии 11.13.7

Применив функцию LoadMapToPicture, мы сохранили изображение карты приложением, разработанным на GIS ToolKit версии 11. Приложение тестировалось на библиотеках GIS ToolKit версии 11.13 от 11.12.2017 с нашего сайта (http://gisinfo.ru/download?id=101). На карте предварительно создали объект "Врезка карты" с отображением документа Microsoft Word. Изображение карты сохранялось в файлы RSW, BMP, TIFF. Изображение таблицы документа Microsoft Word из объекта "Врезка карты" сохранилось во все перечисленные файлы (RSW, BMP, TIFF).

 
Я извиняюсь за пример, что-то знак с shape.iml не сохранился, да, действительно, в примере все работает, но вы попробуйте поместить функцию сохранения в поток, у меня так не работает, если достаю функцию из потока то все сохраняет, если сохраняю в потоке, то не сохраняются таблицы.
 
Цитата
Максим Казаровец написал:
Я извиняюсь за пример, что-то знак с shape.iml не сохранился, да, действительно, в примере все работает, но вы попробуйте поместить функцию сохранения в поток, у меня так не работает, если достаю функцию из потока то все сохраняет, если сохраняю в потоке, то не сохраняются таблицы.
Для подробного рассмотрения вопроса просьба прислать исходный текст примера.
Можно выслать на электронный адрес Техническая поддержка КБ Панорама <panorama@gisinfo.ru>

Спасибо.
 
Цитата
Елена Кузнецова написал:
Для подробного рассмотрения вопроса просьба прислать исходный текст примера
Пример выслал в той же теме.
 
Мы добавили локировку при печати OLE-объектов, чтобы потоки не перебивали друг друга.
Исходные тексты в sdk12.zip\imlapi\shape (shapeapi.cpp) -
http://gisinfo.ru/download?id=229

Изменения войдут в новые версии ГИС Панорама 12 и библиотек для GIS ToolKit 12.

Спасибо за сообщение!

Как вариант, можно попробовать сохранить изображение таблицы в виде растра (BMP, PNG, ...) подходящего масштаба и отрисовывать его в потоках.
Страницы: 1
Читают тему (гостей: 1)



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

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