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

Не находится ранее созданный объект на карте

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: Пред. 1 2
RSS
Не находится ранее созданный объект на карте
 
В комплекте Подольских карт нет карты .sit. Как получить hSite?
 
Код
const char * rscname="/usr/share/qt4/examples/gisdesigner11/Data/Podolsk/Topo100t.rsc";
HSITE hSite=mapCreateAndAppendTempSite(hmap, rscname);

с таким добавлением тоже mapSeekSiteObject djpdhfoftn 0.
 
Приветствую!

Для фоновой (основной карты) в методах требующих hsite, можно передавать 0 или hsite = hmap

С уважением,
Матвеев П.В.
 
Добрый день.
Спасибо за советы. С ранее созданными объектами поборолся использованием временной пользовательской карты.
Объекты наносятся и отображаются на карту методом
Код
void CentralWidget::createFig(double x1, double y1){

    HOBJ obj=mapCreateSiteObject(hmap, hsite);
    if (obj == 0){
        te->append("can`t create object");
        return;
    }

    mapAppendPointPlane(obj, x1-100.0, y1-100.0);
    mapAppendPointPlane(obj, x1+100.0, y1-100.0);
    mapAppendPointPlane(obj, x1+100.0, y1+100.0);
    mapAppendPointPlane(obj, x1-100.0, y1+100.0);
    mapAppendPointPlane(obj, x1-100.0, y1-100.0);

    mapCommitWithPlace(obj);

    uniq_key=mapObjectKey(obj);
    te->append("create empty object with key = "+QString::number(uniq_key));

    mapFreeObject(obj);
    viewMap->Repaint();
    QTimer::singleShot(2000, this, SLOT(myDel()));

}
uniq_key - возвращает ненулевые значения. А вот с поиском по совету

Цитата
По ключу можно найти объект, а затем - удалить.[TABLE][TR][TH]Код[/TH][/TR][TR][TD] // Поиск объекта по уникальному номеру на карте // info - идентификатор существующего объекта, // созданного функцией CreateObject() или CreateSiteObject(), // в котором будет размещен результат поиска. // hMap - идентификатор открытой основной карты // hSite - идентификатор открытой пользовательской карты // key - идентификатор объекта на карте // При ошибке возвращает ноль _MAPIMP HOBJ _MAPAPI mapSeekSiteObject(HMAP hMap, HSITE hSite, HOBJ info, long int key); // Удалить объект карты // Предыдущее состояние объекта сохраняется в резервных // файлах и может быть восстановлено // info - идентификатор объекта карты в памяти // Признак удаления записывается в памяти и в файле // При ошибке возвращает ноль _MAPIMP long int _MAPAPI mapDeleteObject(HOBJ info);[/TD][/TR][/TABLE]
не очень ....
Код
void CentralWidget::myDel(){
    te->append("delete object from map...");

    HOBJ obj = mapSeekSiteObject(hmap, hsite, 0, uniq_key);
    if(obj == 0){
        te->append("object not find... key="+QString::number(uniq_key));
        return;
    }

    long int res=mapDeleteObject(obj);
    if(res==0) te->append("not delete...");

    viewMap->Repaint();
}

mapSeekSiteObject - возвращает ноль.
 
Приветствую!

info     - идентификатор существующего объекта, а у вас 0 - mapSeekSiteObject(hmap, hsite, 0, uniq_key);
Необходимо создать объект при помощи mapCreateSiteObject а потом вызывать mapSeekSiteObject

С уважением,
Матвеев П.В.
 
Цитата
Приветствую!

info     - идентификатор существующего объекта, а у вас 0 - mapSeekSiteObject(hmap, hsite, 0, uniq_key);
Необходимо создать объект при помощи mapCreateSiteObject а потом вызывать mapSeekSiteObject

С уважением,
Матвеев П.В.
Спасибо. Теперь все находится. Как слоган яндекса.
Страницы: Пред. 1 2
Читают тему (гостей: 1)



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

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