首页 / 浏览问题 / 组件GIS / 问题详情
getttingStarted示例工程在QT开发环境下加载三维场景失败
2EXP 2021年12月06日
使用产品:supermap-iobjectscpp-10.2.0-20128-90283-win-all.zip 操作系统:win10 x64

数据类型: 文件型 (global.smwu)
开发工具:Qt5.14.2 msvc2017_64
问题描述: 先上代码:
1  void MainWindow::openMap()
2  {
   ...
3        UGMap* pMap = qMapControl->GetMap();    //QMapControl *qMapControl;

4       QString qStrPath = QFileDialog::getOpenFileName(this,("OpenWorkSpace"), "../data", ("SuperMapWorkspace(*.sxwu *.smwu)"));
5       if(pWorkspace->Open(Translator::QStr2UGStr(qStrPath)))
6       {
7           pMap->SetWorkspace(pWorkspace);
8       }
9       else
10      {
11          QMessageBox::critical(this,"ERROR",QString::fromLocal8Bit("工作空间打开失败!"));
12          return;
13      }

14      int iSceneSize = pWorkspace->m_SceneStorages.GetCount();
15      if (iSceneSize > 0)
16      {
17          UGString sceneName = pWorkspace->m_SceneStorages.GetNameAt(0);
18          if (!pMap->Open(sceneName))
19          {
                QMessageBox::critical(this, "ERROR", QString::fromLocal8Bit("打开场景失败!"));
                //return;
            }
        }
        ...
    }
    
    安装包中示例getttingStarted工程能正常加载二维地图,第 17 行代码返回值是正确的,
    但是运行到 18 行失败,QMapControl 类能否加载场景?
    打开extension4QT 工程也没有找到类似 QSceneControl 的类,
    c++ 中存在SceneControl类可用,请问QT开发环境下如何正确加载三维场景 ?

1个回答

gettingstarted是为了方便用户部署c++环境,提供的一个简单的一个关于二维地图的范例,extension4QT 里面也只有二维地图

三维场景需要自己去调用c++组件接口自行开发,可以参考一下这篇博客:https://blog.csdn.net/supermapsupport/article/details/105143079

4,620EXP 2021年12月07日
...