首页 / 浏览问题 / 组件GIS / 问题详情
从模型数据集1取出记录导入另一个模型数据集2,模型数据集2不显示模型。
26EXP 2023年08月09日
iObject  C++11i中,从模型数据集1中通过GetGeometry()或GetFeature()方法取出一条记录,然后添加到另一个空的模型数据集2中,用idesktop软件查看时,模型数据集2不显示模型,数据集1正常显示?

1个回答

可以将这段代码贴出来看一下吗,是如何进行操作的,需要根据具体代码分析,简单的描述无法帮助定位问题
4,620EXP 2023年08月09日
//模型数据集1,里面有一条导入.3ds的飞机模型的记录
UGDatasetVector* dv = (UGDatasetVector*)pDataSource->GetDataset(_U("model")).get();
if(!dv->IsOpen()) dv->Open();
UGQueryDef query;
UGRecordsetPtr res = dv->Query(query);
res->MoveFirst();
UGGeometry* geometry = NULL;
res->GetGeometry(geometry); 

//空的模型数据集2
UGDatasetVector* dvtest = (UGDatasetVector*)pDataSource->GetDataset(_U("ModelTest")).get();
if(!dvtest->IsOpen()) dvtest->Open();
UGRecordsetPtr resTest = dvtest->Query(query);
resTest->AddNew(geometry);
resTest->Update();

你可以直接用UGDatasetVector->Append方法去将记录追加到目标数据集,看一下是否能够追加成功,注意,追踪看一下recordset里面是否存在正确的记录
这样是能够正常显示。但为什么取出几何对象添加到记录集就不显示呢,这是Bug吗?
应该是从记录集里面取出模型对象的时候没有取完整,直接用append性能反而会更高一些,所以一般直接用追加的方式
...