使用产品:iobjectscpp-10.0.1 操作系统:win7 x64 开发工具:vs2012
数据类型: 服务
问题详细描述:帮助文档\help\help.html 知识库》如何打开新的地图》打开iServer发布的地图,给了一个如何打开本地服务,因没有本地服务,用了http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps,试了没有反应,是服务不能用还是代码问题?
问题重现步骤:
1、按照help.html文档创建gettingStarted工程,打开本地数据源,可以正常显示,代码如下:
void GettingStarted::openMap()
{
UGMap* pMap = m_pMap;
//获取要打开的工作空间文件路径
QString qStrPath = QFileDialog::getOpenFileName(this, QString::fromUtf8("OpenWorkSpace"), "F:\\SuperMap_iObjects_CPP\\sample\\data", tr("smwu(*.smwu)"));
//打开指定的工作空间
if(m_pWorkspace->Open(Translator::QStr2UGStr(qStrPath)))
{
NULL;
}
else
{
QMessageBox::critical(this,"ERROR",QString::fromUtf8("工作空间打开失败!"));
return;
}
if(!m_pWorkspace->m_MapStorages.GetCount())
{
QMessageBox::critical(this,"ERROR",QString::fromUtf8("工作空间不包含地图!"));
return;
}
//获取工作空间中第一幅地图的地图名称
UGString mapName = m_pWorkspace->m_MapStorages.GetNameAt(0);
//打开地图
if (!pMap->Open(mapName))
{
QMessageBox::critical(this,"ERROR",QString::fromUtf8("打开地图失败!"));
return;
}
//刷新地图窗口
qMapControl->Refresh();
}
2、打开服务,没有反应,也没有报错,代码如下:
void GettingStarted::openWebData()
{
UGDataSource* pDataSourc = NULL;
//指定一个数据源
UGString dataSourceName = _U("http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China");
//要给载入的数据源拟定一个别名
UGString aliasName = _U("China");
pDataSourc = m_pWorkspace->OpenDataSource(dataSourceName, aliasName, UGEngineType::Rest);
if(pDataSourc == NULL)
{
QMessageBox::critical(this,"ERROR",QString::fromUtf8("打开web数据源失败!"));
return;
}
//取出第一个dataSet
UGDataset *dataset = pDataSourc->GetDataset(0);
// 判断数据有效性
if(dataset == NULL)
{
QMessageBox::critical(this,"ERROR",QString::fromUtf8("打开web数据源无效!"));
return;
}
//获取到用于显示的MapEditorWnd中的map
UGMap* pMap = m_pMap;
// 将Dataset添加到地图中
UGLayer* pLayer = pMap->m_Layers.AddDataset(dataset, dataset->GetType());
//刷新地图窗口
qMapControl->Refresh();
return;
}
3、下面是OpenDataSource断点