属性编辑

iMobile支持编辑对象属性,既可以为新增的点、线、面对象添加属性,也能修改指定对象的属性。

实现属性采集,需要的类库包括com.supermap.data.jar、com.supermap.mapping.jar,so库包括libimb2d.so、libgnustl_shared.so、libQt5Core.so、libQt5Gui.so、libQt5Svg.so、libQt5Widgets.so。

关键类和方法如下表:

方法
DatasetVector getDataset()、query()
Recordset edit()、setFieldValue()、update()

添加属性

第一步:根据对象ID查询对象

DatasetVector datasetVector = (DatasetVector)mCurLayer.getDataset();
int[] ids = { mCurID };
Recordset recordset = datasetVector.query(ids,CursorType.DYNAMIC);

第二步:添加属性

recordset.moveFirst();	//使第一条记录成为当前记录
recordset.edit();		//锁定并编辑当前记录
recordset.setFieldValue(“名称”, name);//根据字段名称设置字段值
recordset.setFieldValue(“类型”, type);//根据字段名称设置字段值
recordset.update();	//提交修改
recordset.dispose();	//释放占用的资源

修改属性

第一步:选择对象,查询属性

Selection selection = layer.getSelection();	//获取图层中的选择集对象

第二步:修改属性

if (selection.getCount() > 0) {
  Recordset recordset = selection.toRecordset();//选择集对象转记录集
  recordset.moveFirst();	//使第一条记录成为当前记录
  recordset.edit();		//锁定并编辑当前记录
  recordset.setFieldValue(“name”, string);//根据字段名称设置字段值
  recordset.update();	//提交修改
  recordset.dispose();	//释放占用的资源
}