使用产品: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工程基本一致,超图二次开发新手望解答,万分感谢!