首页 / 浏览问题 / 组件GIS / 问题详情
getttingStarted工程成功加载自制地图但是显示空白
2EXP 2020年07月01日
使用产品:iobjectscpp-10.0.1-18027-76100winall

操作系统:win10 x64 开发工具:qt5.1.1 msvc2012 32bit/vs2012

问题描述:使用objects C++组件下gettingStarted工程能够正常运行,但是利用该工程打开自制.smwu地图时能够成功加载工作空间不报错,同时鼠标点击位置可以读取经纬度,但界面显示空白;于是自己起了另外一个工程(未调用extension4QT工程,而是自己写了一个qmapcontrol类)能够正常显示地图,但是鼠标点击位置无法读取经纬度,我把自己工程加载地图的工作空间的代码粘贴如下,请问原因是什么?

自己的工程:

void MainWindow::openWorkspace()
{

   QString qStrPath = QFileDialog::getOpenFileName(this,QString::fromUtf8("OpenWorkSpace"), "../Data", tr("smwu(*.smwu)"));

    UGWorkspace *p_mWorkspace=new UGWorkspace();
    UGWorkspaceConnection p_mWorkspaceConnection=UGWorkspaceConnection();
    p_mWorkspaceConnection.m_strServer=QStringToUGString(qStrPath);
    p_mWorkspaceConnection.m_nWorkspaceType=9;
    if(!p_mWorkspace->Open(p_mWorkspaceConnection))
    {
        QMessageBox::critical(this,"ERROR",QString::fromLocal8Bit("工作空间打开失败!"));
        return;
    }
    qmapControl->SetWorkspace(p_mWorkspace);
    qmapControl->openMap(p_mWorkspace->m_MapStorages.GetNameAt(0));
}

其中qmapcontrol类中的openMap与示例程的不同之处在于

bool QMapControl::openMap(UGString mapName)
{
    if(m_pmap->Open(mapName))
    {
       this->Invalidate();
       return true;
    }
    return false;
}

还有一处不同在

 UGMap *m_pmap;

UGMap *QMapControl::GetMap()
{
    return m_pmap;
}

而示例程序中是 return &(m_pMapEditorWnd->m_mapWnd.m_Map);

其余代码与gettStarted工程基本一致,超图二次开发新手望解答,万分感谢!

1个回答

从这段代码看不出来问题,需要你那边确认几点:

1、用gettingstart打开你自制的地图的时候,工作空间是否打开,加一个断点,看一下;

2、将你的地图名获取出来看是否有问题,然后再去打开地图,查看打开的时候返回为false还是为ture.

3、说一下你的地图里面都有些什么数据,是普通的点线面吗?
4,620EXP 2020年07月01日
...