向已经存在的要素图层添加要素(点要素 线要素)

private void axMapControl1_OnMouseDown_1(object sender, IMapControlEvents2_OnMouseDownEvent e)
        {
               //添加点要素
            ILayer pLayer = axMapControl1.get_Layer(0);
            IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
            IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
            IDataset pDataset = pFeatCls as IDataset;
            IWorkspace pWS = pDataset.Workspace;
            IWorkspaceEdit pWorkspaceEdit = pWS as IWorkspaceEdit;
            pWorkspaceEdit.StartEditing(false);
            pWorkspaceEdit.StartEditOperation();
            IFeatureBuffer pFeatureBuffer;
            IFeatureCursor pFeatureCuror;
            IFeature pFeature;
            IPoint pPoint=new PointClass();
            pFeatureBuffer = pFeatCls.CreateFeatureBuffer();
            pFeatureCuror = pFeatCls.Insert(true);
            pFeature = pFeatureBuffer as IFeature;
            pPoint.X = e.mapX;
            pPoint.Y = e.mapY;
            IGeometry pPointGeo = pPoint as IGeometry;
            pFeature.Shape = pPointGeo;
            pFeatureCuror.InsertFeature(pFeatureBuffer);
            pWorkspaceEdit.StopEditOperation();
            pWorkspaceEdit.StopEditing(true);
            
 
           //添加线要素
            ILayer pLayer = axMapControl1.get_Layer(2);
            IFeatureLayer pFeatureLyr = pLayer as IFeatureLayer;
            IFeatureClass pFeatCls = pFeatureLyr.FeatureClass;
            IDataset pDataset = pFeatCls as IDataset;
            IWorkspace pWS = pDataset.Workspace;
            IWorkspaceEdit pWorkspaceEdit = pWS as IWorkspaceEdit;
            pWorkspaceEdit.StartEditing(false);
            pWorkspaceEdit.StartEditOperation();
            IFeatureBuffer pFeatureBuffer;
            IFeatureCursor pFeatureCuror;
            IFeature pFeature;
            IPoint pPoint1 = new PointClass();
            pPoint1.PutCoords(e.mapX, e.mapY);
            IPoint pPoint2 = new PointClass();
            pPoint2.PutCoords(e.mapX + 20, e.mapY + 30);
            ILine pLine = new LineClass();
            pLine.PutCoords(pPoint1, pPoint2);
            pFeatureBuffer = pFeatCls.CreateFeatureBuffer();
            pFeatureCuror = pFeatCls.Insert(true);
            pFeature = pFeatureBuffer as IFeature;
            IGeometry line = pLine as IGeometry;
            pFeature.Shape = line;
            pFeatureCuror.InsertFeature(pFeatureBuffer);
            pWorkspaceEdit.StopEditOperation();
            pWorkspaceEdit.StopEditing(true);
            axMapControl1.ActiveView.Refresh();
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值