首页 / 浏览问题 / 组件GIS / 问题详情
数据集中的几何对象选中问题
2EXP 2020年09月23日
//回调函数
void SelectedFunc(UGlong pWnd, UGLayer* pLayer, UGint nGeoID)
{
	qDebug() << nGeoID;
}	

//编辑代码
void PluginInstance1::EditPoint()
{
	m_type = PointType::EDITPOINT;
	QMapControl*mapControl = dynamic_cast<QMapControl*>(m_parent->getMapcontrol());
	UGMap*map = mapControl->GetMap();
	UGC::UGMapEditorWnd* pMapeditorwnd = mapControl->GetUGMapWnd();
	pMapeditorwnd->SetSelectionMode(UGMapWnd::smContainCentroid);
	pMapeditorwnd->SetUserAction(UGDrawParamaters::UGMapUserAction::uaPointModeSelect);
	pMapeditorwnd->SetSingleGeometrySelectedFunc(SelectedFunc,UGlong(this));
}

想问下为什么点被选中之后没有进到回调函数里面

1个回答

选中对象触发事件用这个回调pMapeditorwnd->SetGeometrySelectedFunc(GeometrySelectedCallBack,,UGlong(this));

在这个事件里面去拿取获取的对象:

    UGSelection* pSelection =  pLayer->GetSelection();
    int geoCount = pSelection->GetSize();
    if (geoCount > 0)
    {

        ugrecordset* recordset = pSelection->torecordset();

        //去做想做的操作;

    }
4,620EXP 2020年09月24日
谢谢,用您说的这个确实可以进回调,那如果我想删除点或者修改点的位置应该调用哪个函数?
删除点需要自己去实现,实现思路就是通过图层的selection获取到选择的记录,然后通过UGRecordset.delete去删除
...