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

Nikita Sarychev (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Nikita Sarychev
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 След.
Поиск объектов по координатам, Как правильно осуществлять поиск объектов по координатам?
 
Спасибо за разъяснения. Поиск работает.
Поиск объектов по координатам, Как правильно осуществлять поиск объектов по координатам?
 
Добрый день. Создавать контекст поиска на каждый HSITE не требовалось в предыдущих версиях Панорамы 11,12 и поиск работал нормально. Каким образом создавать контекст на каждый HSITE?  Есть функция mapCreateMapSelectContext(HMAP hmap), но она HMAP принимает. Если использовать таким образом - HSELECT hsel = mapCreateMapSelectContext( (HMAP)currentSit), то это тоже не помогает с поиском. Как правильно?
Поиск объектов по координатам, Как правильно осуществлять поиск объектов по координатам?
 
В приведённом мной блоке кода есть перебор использованием  mapGetSiteIdentmap. В строке currentSite = mapGetSiteIdent( m_hMap, subMapCounter); есть переменная subMapCounter, которая инкрементируется если объектов больше не найдено.
Поиск объектов по координатам, Как правильно осуществлять поиск объектов по координатам?
 
Добрый день. В блоке кода приведенном ниже осуществляется поиск объектов карты по введенным координатам. Дело в том, что поиск работает только в рамках главной карты, на соседних подгруженных картах поиск не выдает результатов.
Библиотека Аврора 3 - 14.3.0 или Аврора 4 - 1.2.4. Карты можно взять любые sxf, map (можно из примеров N-39-1 и N-38-2).
Код
void MapController::searchForObjectsByDesc(double lat, double lon, const std::string &desc)
{
    m_forceBreakSearch = false;
    if( m_hMap == 0) return;
    int count = 0;
    m_selObjects.clear();
    m_searchList.clear();
    QTextCodec* codec = QTextCodec::codecForName( "KOI8-R");
    HSELECT hsel = mapCreateMapSelectContext( m_hMap);
    HOBJ obj = mapCreateObject( m_hMap);
    mapSelectObject( hsel, -1, 1);
    mapSelectLocal( hsel, -1, 0);
    if( desc.find( "square") != std::string::npos)
    {
        mapSelectLocal( hsel, LOCAL_SQUARE, 1);
    }
    HOBJ dotObj = mapCreateObject( m_hMap);
    mapRegisterObject( dotObj, 1000000003, LOCAL_POINT);
    mapAppendPointGeo( dotObj, lat, lon);
    m_searchOnlyCentralMap = false;
    mapSelectSeekArea( hsel, dotObj, 50., 1, 0, 1, 0);
    


    int count = 0;

    int flag = WO_FIRST;
    HOBJ hobj = mapCreateObject( m_hMap);
    HSITE currentSite = mapGetSiteIdent( m_hMap, 0);
    //   int subMapCounter = -1
    int subMapCounter = 0;

    while( !m_forceBreakSearch)
    {
        bool res = false;
        if( subMapCounter == -1)
        {
            res = mapSeekSelectObject( m_hMap, hobj, hsel, flag);
        }
        else
        {
            res = mapSeekSiteSelectObject( m_hMap, currentSite, hobj, hsel, flag);
        }
        if( !res)
        {
            mapClearObject( hobj);
            subMapCounter++;
            if( subMapCounter < mapGetSiteCount( m_hMap))
            {
                currentSite = mapGetSiteIdent( m_hMap, subMapCounter);
                flag = WO_FIRST;
                continue;
            }
            break;
        }
        flag = WO_NEXT;
        DFRAME dfr_obj;
        mapObjectViewFrame( hobj, &dfr_obj);
        double latx = 0, lonx = 0;
        plane2Geo( ( dfr_obj.X1 + dfr_obj.X2) / 2, ( dfr_obj.Y1 + dfr_obj.Y2) / 2, latx, lonx);
        QString name = codec->toUnicode( mapObjectName( hobj));
        MapObjInfo moi;
        moi.m_objName = name;
        moi.m_lat = latx;
        moi.m_lon = lonx;


        if( currentSite == 0)
        {
            moi.m_index = mapGetObjectNumber(hobj);
        }
        else
        {
            moi.m_index = mapGetSiteObjectNumberByKey( m_hMap, currentSite, mapObjectKey( hobj));
        }
        moi.m_hSiteIndex = subMapCounter;
        moi.m_mapIndexName = codec->toUnicode( mapGetSiteListName( m_hMap, currentSite));
        moi.m_code = mapObjectExcode(hobj);

        m_searchList.append( moi);
        if( m_searchList.size() >= 1001) break;//magic number as in MapSearchMenu, bad search request
        count++;
//        QVariant vprc = QVariant( 0.);
        QString infoVal = QTranslator::tr( "!!Search ") + QString::number( count);
        setCurrentStatus( infoVal, 50);
    }
    mapFreeObject( hobj);
    m_forceBreakSearch = false;



    setCurrentStatus( "", 100);
    mapFreeObject( obj);
    mapDeleteSelectContext( hsel);
}
Обратная совместимость RSW, RSW
 
Добрый день. В текущей сборке не исправлена проблема, которая была исправлена в 3ей версии https://gisweb.ru/forum/messages/forum7/topic13102/message96488/13102-sglazhivanie-izobrazheniya-v-r...
Обратная совместимость RSW, RSW
 
Добрый день. На данный момент это последняя версия библиотеки под ОС Аврора 4?
Обратная совместимость RSW, RSW
 
Добрый день. Возникла проблема с отображением карт с jpg сжатием на 4-ой версии Авроры. Карта открывается описанными выше функциями. При попытке отображения карты в буфер программа падает с ошибкой symbol lookup error: /usr/share/Application/lib/libqdjpgview.so: undefined symbol: jpeg_mem_src, version LIBJPEGTURBO_6.2
Код отображения карты в буфер:

       auto hpaint = mapCreatePaintControl(m_hMap);

       RECT RectDraw; // Область отрисовки карты
       RectDraw.left = drawRect.left();
       RectDraw.top   = drawRect.top();
       RectDraw.right  = drawRect.right();
       RectDraw.bottom = drawRect.bottom();

       XIMAGEDESC xImageDesc;
       xImageDesc.Point     = (char *)imgOut.bits();               // Адрес начала области пикселов
       xImageDesc.Width     = imgOut.width(); // Ширина строки в пикселах
       xImageDesc.Height    = imgOut.height(); // Число строк
       xImageDesc.Depth     = imgOut.depth(); // Размер элемента в битах (8,15,16,24,32)
       xImageDesc.CellSize  = imgOut.depth() / 8; // Размер элемента(пиксела) в байтах
       xImageDesc.RowSize   = imgOut.width() * xImageDesc.CellSize; // Ширина строки в байтах
       int ret = 0;

       double realShowScale = mapGetRealShowScale(m_hMap);
       mapSetRealScalePro(m_hMap, 0, 0, realShowScale, hpaint);

       if( m_selObjects.empty() && m_selObstacles.isEmpty())
       {
           ret = mapPaintToXImagePro(m_hMap, &xImageDesc, 0, 0, 0, &RectDraw, hpaint);
       }
       mapFreePaintControl(hpaint);
Обратная совместимость RSW, RSW
 
Спасибо. Теперь понятно в чем была ошибка. Ждем обновленную версию
Обратная совместимость RSW, RSW
 
Добрый день. Это не помогло. По прежнему карта RSW, сделанная через десктопную Панораму 13 не отображается на 14 версии через функции библиотеки.
Обратная совместимость RSW, RSW
 
https://cloud.turmio.pw/index.php/s/difxTw2JtYQJHGC

QString nameCheck = name;
long int err = 0;
               m_hMap = mapOpenAnyDataPro( reinterpret_cast< WCHAR*>( nameCheck.data()), GENERIC_READ, &err, 0, 0);
Страницы: 1 2 3 4 5 След.



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

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