|
public void LineCut()
{
IFeatureClass ipFeatureClass = ((IFeatureLayer)m_pCurrentLayer).FeatureClass;
IEnumFeature pEnumFeature = Map.FeatureSelection as IEnumFeature;
IFeature ipFeature = pEnumFeature.Next();
while (ipFeature == null)
{
MessageBox.Show("请先选中图形");
break;
}
ITopologicalOperator topo;
topo = ipFeature.Shape as ITopologicalOperator;
IGeometry leftGeometry, rightGeometry;
IPolyline ipPolyline;
IRubberBand irubber = new RubberLineClass();
ipPolyline = irubber.TrackNew(this.MapControl.ActiveView.ScreenDisplay, null) as IPolyline;
topo.Cut(ipPolyline, out leftGeometry, out rightGeometry);
if (m_pCurrentLayer == null) return;
IWorkspaceEdit pWorkspaceEdit = GetWorkspaceEdit();
IFeatureLayer pFeatureLayer = (IFeatureLayer)m_pCurrentLayer;
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
pWorkspaceEdit.StartEditOperation();
IFeature newFeature = ipFeatureClass.CreateFeature();
newFeature.Shape = leftGeometry;
newFeature.Store();
IFeature newFeature2 = ipFeatureClass.CreateFeature();
newFeature2.Shape = rightGeometry;
newFeature2.Store();
pWorkspaceEdit.StopEditOperation();
ipFeature.Delete();
this.MapControl.ActiveView.Refresh();
}
请教各位高手,以上为线分割线、线分割面函数,但
实际效果是线分割线可以,线分割面不成功,不知何故。
|
|