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

Не обновляется изображение на карте. Не видно добавленных объектов.

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Не обновляется изображение на карте. Не видно добавленных объектов., Не обновляется изображение на карте. Не видно добавленных объектов.
 
Добрый день!
1)
Открываю карту следующим образом:
Код
    QTextCodec *CodecKOI8R = QTextCodec::codecForName("KOI8-R");
    char fullname[1024];

    QString fileName = QFileDialog::getOpenFileName(this, 0, 0, CodecKOI8R->toUnicode("*.map;; *.sit;; *.sitx"));
    std::strncpy(fullname, CodecKOI8R->fromUnicode(fileName).data(), sizeof(fullname));
    hmap = mapOpenData(fullname);
    std::cout<<"Open basic map hmap = "<<hmap<<std::endl;

    hsite = mapCreateAndAppendTempSite(hmap, 0);
    std::cout<<"mapCreateAndAppendTempSite = "<<hsite<<std::endl;

    ui->viewMap->SetMapFileName(fileName);            
    ui->viewMap->SetMapActive(true);
    ui->viewMap->SetMapVisible(true);                   

2) Добавляю объект на карту из классификатора
Код
   HOBJ hObj = mapCreateSiteObject(hmap, hsite, IDDOUBLE2);   // создаём пустой объект на карте (контейнер)
   std::cout<<"hObj = "<<hObj<<std::endl;

    mapRegisterObject(hObj, 31632000, LOCAL_SQUARE);
    mapAppendPointPlane(hObj, 6170267, 7411269, 0);                 
    mapCommitObject(hObj);                                                           
    int i = mapObjectKey(hObj);                                                  
    listKeyObj.append(i);
    std::cout<<"unique key obj = "<<i<<std::endl;
    mapFreeObject(hObj);                                                         
    ui->viewMap->Repaint();                                                   
В результате, на карте не вижу добавленного объекта, хотя методы все вернули не 0 значение и Repaint я делаю.  Подскажите пожалуйста, какие необходимо предпринять меры, для того, чтобы увидеть, добавленный объект на карте.
Изменено: Анастаия - 15.06.2018 13:41:56
 
Там может быть нужно больше точек для данного типа метрики.
 
Точно не в этом причина, т.к это опечатка, я не весь код привела. Для примера, вот точечный объект добавляю и тоже методы возвращают не 0, а на карте ничего не отображается.
Код
    HOBJ hObj = mapCreateSiteObject(hmap, hsite, IDDOUBLE2);   // создаём пустой объект на карте (контейнер)
    mapRegisterObject(hObj, 53160000, LOCAL_POINT);
    mapAppendPointPlane(hObj, 6170267, 7411269, 0);                
    mapCommitObject(hObj);                                                         
    mapObjectKey(hObj);                                                     
    listKeyObj.append(i);
    mapFreeObject(hObj);                                                        
    ui->viewMap->Repaint();
 
Здравствуйте!

В данном случае Вы используете два экземпляра открытой карты в памяти (открытый с помощью функции mapOpenData() и с помощью графического компонента QDMapView).
Для избежания двойственности необходимо работать с идентификатором карты HMAP, полученным из компонента QDMapView с помощью функции QDMapView::GetMapHandle().
Страницы: 1
Читают тему (гостей: 1)



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

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