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

Удаление объекта карты с освобождением ресурсов

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Удаление объекта карты с освобождением ресурсов
 
Функция mapDeleteObject помечает объект как удаленный, он становится невидимым, но при этом сохраняется в памяти с возможностью отмены удаленного состояния. А как удалить объект карты по-настоящему, чтобы освободились занимаемые им ресурсы?

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

В зависимости от требуемой задачи есть следующие варианты:
  • для освобождения ресурсов в памяти, выделенных под объект (HOBJ), необходимо при завершении работы с объектом вызвать функцию mapFreeObject (mapapi.h, пример использования показан в пункте 3.9.16 Руководства программиста);
  • для полного удаления объектов, помеченных как удаленные, необходимо выполнить сортировку карты, например, с помощью фукнции MapSortingSitePro (mapapi.h, пример использования можно посмотреть в примерах разработки приложений в ГИС "Оператор" SE и ГИС "Панорама", файл mapacces/tests/test_map_sorting.cpp).
Код
  // Удалить описание объекта векторной карты из памяти
  // info - идентификатор объекта карты в памяти
  // Для сохранения объекта на карте необходимо
  // до вызова mapFreeObject(...) выполнить функцию
  // mapCommitObject(...)
  // При ошибке возвращает ноль

_MAPIMP void _MAPAPI mapFreeObject(HOBJ info);

  // Сортировка отдельной карты документа
  // mapname - сортируемая карта
  // flags   - Флажки обработки карты :
  //   0 - сортировать все листы,
  //   1 - только несортированные,
  //   2 - сохранять файлы отката,
  //   4 - повысить точность хранения, формат - мкм
  //  16 - повысить точность хранения, формат - см
  //  32 - повысить точность хранения, формат - мм
  //  64 - повысить точность хранения, формат - радианы
  // 128 - формировать мультиконтура для объектов с флагом мультиконтурный
  // handle     - идентификатор окна, которому посылаются сообщения WM_OBJECT и WM_ERROR,
  //              если не задан параметр hEvent
  // hEvent     - адрес функции обратного вызова для уведомления о проценте выполнения,
  //              если параметр не задан, то посылаются сообщения WM_OBJECT и WM_ERROR
  // eventparam - параметр, передаваемый функции обратного вызова
  // outpath    - буфер для записи пути к папке, куда сохранили отсортированную карту,
  //              если задан этот параметр, то исходная карта не обновляется,
  //              папка создается автоматически в программе сортировки
  // size       - длина буфера в байтах
  // format - управление форматом карты :
  //  0 - не менять,
  //  1 - установить формат SITX (на входе может быть SIT или MAP с одним листом),
  //  2 - упаковать карту в формат SITZ\MAPZ, точность - см,
  // -1 - установить формат SIT (на входе может быть SITX или MAP с одним листом),
  // code - управление шифрованием карты :
  //  0 - не менять,
  //  1 - шифровать данные с помощью пароля из параметра password (формат SITX),
  // -1 - снять шифрование данных
  // password - пароль для шифрования данных, когда code = 1, или 0
  // Если карта отсортирована успешно - возвращает 1
  // Если карта уже отсортирована - возвращает 2
  // Если оператор прервал операцию - возвращает -1
  // Если карта не доступна на редактирование - возвращает -2
  // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI MapSortingWithEventPro(const WCHAR *mapname, long int flags,
                                                HMESSAGE handle, EVENTCALL hEvent, void *eventparam,
                                                WCHAR *outpath, long int size,
                                                long int format, long int code,
                                                const WCHAR *password);

_MAPIMP long int _MAPAPI MapSortingSitePro(HMAP hmap, HSITE hsite, long int flags,
                                           HMESSAGE handle, long int format, long int code,
                                           const WCHAR *password);
Страницы: 1
Читают тему (гостей: 1)



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

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