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

Удаление объектов с пользовательской карты, не освобождается память

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Удаление объектов с пользовательской карты, не освобождается память
 
Добрый день!

Есть вопрос по-поводу удаления объектов, добавленных на пользовательскую карту.
Код
//Добавление объекта на пользовательскую карту 

    hSite = mapCreateAndAppendTempSite(currentHmap,0);

    HOBJ hObj = mapCreateSiteObject(currentHmap, hSite, IDDOUBLE2);    

    int numObj = mapGetSiteObjectCount(currentHmap, hSite);
    std::cout<<" num1 = "<<numObj<<std::endl;

    mapRegisterObject(hObj, 53180000, LOCAL_POINT);                   

    double x = 56.0475*M_PI/180;
    double y = 38.2566*M_PI/180;

    mapGeoToPlane(currentHmap,&x,&y);

    mapAppendPointPlane(hObj, x, y, 0);
    mapCommitObject(hObj);
    i = mapObjectKey(hObj);     

    mapFreeObject(hObj);

    numObj = mapGetSiteObjectCount(currentHmap, hSite);
    std::cout<<" num2 = "<<numObj<<std::endl;

    ui->mv->Repaint();


Удаление объекта с пользовательской карты

   HOBJ hObj = mapCreateSiteObject(currentHmap, hSite, IDDOUBLE2);          
    mapSeekSiteObject(currentHmap, hSite,hObj, i);            

     int ObjCount = mapGetSiteObjectCount(currentHmap,hSite);
     std::cout<<" 1 "<<ObjCount<<std::endl;

    if(mapDeleteObject(hObj) ==0) 
    {
        std::cout<<"Ошибка при удалении объкта"<<std::endl;
        return;
    }

    mapFreeObject(hObj);            // удаляем сам контейнер

    ObjCount = mapGetSiteObjectCount(currentHmap,hSite);
    std::cout<<" 2 "<<ObjCount<<std::endl;

    ui->mv->Repaint();




Вывод после удаления -

 1 2

2 2
Т.Е, как было на пользовательском слое 2 объекта, так они и остались!



И если воспользоваться поиском, то удаленный объект по-прежнему находится. Т.е по сути данный метод позволяет удалить этот объект только с карты (чтобы он не отображался)?




 
Здравствуйте.

После удаления объекта информация о нем продолжает хранится для обеспечения возможности его восстановления. В зависимости от задачи, либо выполняется сортировка карты для полного удаления объектов, либо используется функция mapGetSiteRealObjectCount для запроса количества объектов без учета удаленных.
Страницы: 1
Читают тему (гостей: 1)



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

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