首页 / 浏览问题 / 组件GIS / 问题详情
如何获取记录集中几何对象的坐标点信息呢?
26EXP 2023年03月15日
iobjects C++ 11i中,使用交互式方法:SetUserAction(UGDrawParamaters::uaEdit,UGEditType::ET_PolyLine)绘制几何对象时,会在记录集里增加一条记录,数据集中是否有保存有几何对象的坐标点(x,y)信息?是需要自己自己捕获坐标点信息还是有什么接口可以获取呢?

1个回答

1、需要去数据集里面获取到记录集,可以用UGDatasetvector.query方法去查询获取到UGRecordset

2.然后获取出线对象,再通过UGGeoline.getpoint去获取到当前线的所有节点
4,620EXP 2023年03月15日
我试着示例数据中China400数据源下面的China_Provinces_L数据集,用UGDatasetVector的GetRecordsetCount()方法为啥结果是-1,即没有记录集。每个数据集不是都有一个记录集吗?

使用UGDatasetVector::GetRecordsetAt ( UGint  nIndex )无法获取记录集,只能通过UGDatasetvector.query查询获取吗?

获取到UGRecordset后,如何取出线对象,是使用UGbool UGC::UGRecordset::GetGeometry(UGGeometry *& pGeometry,UGint     iJuge = 0 ),该函数不是返回bool值吗,请问能给个简单的代码示例吗?
以下代码为从点数据集中获取出点对象,线对象是不一样的,比照着来就是

UGDatasetVector * dataset_point1 = (UGDatasetVector *)m_pWorkspace->GetDataSource(0)->GetDataset(_U("Point1"));  

dataset_point1->Open();  

UGQueryDef def = UGQueryDef();

 UGRecordset* recordset1 = dataset_point1->Query(def);

 recordset1->MoveFirst();

 UGGeometry * TempGeomtry = nullptr;

 recordset1->GetGeometry(TempGeomtry);

 UGGeoPoint * TempPoint = dynamic_cast<UGGeoPoint*>(TempGeomtry);
...