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

Применение временных карт

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active
Страницы: 1
RSS
Применение временных карт, Особенности создания и удаления
 
Делюсь копией переписки по e-mail:

Вопрос:

А. Создаю новую карту, для нее 2 SIT и 1 временный SIT. Сохраняю карту.
После вызова mapSaveMapState в LOG появляются VCL файлы для всех SIT и для карты MAP.
После закрытия карты mapCloseMap они не удаляются из LOG...
Б. Еще вопрос. У меня есть папка в которой лежит файл классификатора RSC.
Я создаю карту и указываю путь до этого файла (насколько я понимаю ГИС
тут же копирует этот файл RSC в папку где лежит карта), потом создаю SIT
и указываю тотже путь к классификатору. Панорама опять скопирует RSC
в папку с картой? Не может ли здесь быть конфликта?

Ответ по А:

1.Файлы VCL не являются временными файлами.
В них сохраняются текущие параметры отображения карты (состав объектов)
для восстановления при открытии карты.
2. Если Вы желаете удалить некоторый файл, то можете воспользоваться
системными функциями.
3. Функция mapCreateAndAppendSite() (в примере программы) создает не временные карты, а
постоянные.
Если Вы хотите имитировать работу с пользовательской картой, как с
временной, то ее надо удалять:

 // Удалить пользовательскую карту (все файлы данных)
 // hMap - идентификатор открытой карты
 // number - номер пользовательской карты в цепочке
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapDeleteSite(HMAP hMap, long int number);


 // Удалить пользовательскую карту (все файлы данных)
 // name - полное имя файла паспорта карты
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapDeleteSiteByName(const char * name);

В этом случае удаляется и ее VCL.

Для создания временных карт вызываются другие функции:

 // Создать временную пользовательскую карту
 // rscname - полное имя файла ресурсов
 // Файлы карты размещаются в рабочей директории системы
 // и имеют уникальные имена, генерируемые автоматически
 // При закрытии карты все файлы данных удаляются
 // При ошибке возвращает ноль

_MAPIMP HMAP _MAPAPI mapCreateTempSite(const char * rscname);


 // Создать временную пользовательскую карту по открытой карте   // 12/01/07
 // hmap    -  идентификатор открытых данных
 // rscname - полное имя файла ресурсов, если равно 0 - выбирается
 // из открытой карты
 // Файлы карты размещаются в рабочей директории системы
 // и имеют уникальные имена, генерируемые автоматически
 // При закрытии пользовательской карты все файлы данных автоматически удаляются
 // Возвращает идентификатор открытой пользовательской карты
 // При ошибке возвращает ноль

_MAPIMP HSITE _MAPAPI mapCreateAndAppendTempSite(HMAP hmap, const char * rscname);

Для временных карт файл VCL не создается. При закрытии они удаляются
автоматически со служебными файлами.

Ответ по Б:

Никакого конфликта тут нет. Но Вы можете отменить копирование RSC,
если выберете одну папку в качестве общей для хранения RSC и укажете
путь к ней:

 // Установить путь к общим файлам классификаторам (RSC)
 // При ошибке возвращает ноль

_MAPIMP const char * _MAPAPI mapSetCommonRscPath(const char * rscpath);

 // Запросить путь к общим файлам классификаторам (RSC)
 // При ошибке возвращает пустую строку

_MAPIMP const char * _MAPAPI mapGetCommonRscPath();
 

Рассчитываю, что команда
// Закрыть и Удалить векторную карту (все файлы данных)
 // hmap - идентификатор открытых данных
 // После удаления идентификатор hMap не должен использоваться,
 // как после mapCloseData()
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapDeleteMap(HMAP hMap);

удалит файлы карты, но этого не происходит.

Почему?

 
Цитата
Сергей Викторович написал:
Рассчитываю, что команда mapDeleteMap(HMAP hMap) удалит файлы карты, но этого не происходит.  Почему?

А какой код возврата при вызове данной функции Вы получаете?

Файлы карты могут быть не удалены, если они по отдельности кем-то открыты или карта открыта целиком, в каком либо приложении.

При удалении карты классификатор остается, остальные файлы удаляются, включая файлы журнала карты.


Пример для проверки :
Скрытый текст
Страницы: 1
Читают тему (гостей: 1)



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

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