一、ArcEngine要素转点,要素节点转点
/// <summary>
/// 要素节点转点
/// </summary>
/// <param name="IN_Featureclass">要转换的要素类</param>
/// <param name="IN_FeatureDataset">要生成转换后要素类的要素数据集</param>
/// <returns>生成的点要素类</returns>
private IFeatureClass PRV_FeatureVerticesToPoints(IFeatureClass IN_Featureclass,IFeatureDataset IN_FeatureDataset)
{
//创建要素类
IFeatureClass Temp_VPFeatureClass =IN_FeatureDataset.CreateFeatureClass(IN_Featureclass.AliasName + "_VPoints", PRV_SetFields(IN_Featureclass), null, null, esriFeatureType.esriFTSimple, "Shape", "");
//提取所有要素
IFeatureCursor Temp_GetEachFeature = IN_Featureclass.Search(null, false);
IFeature Temp_EachFeature = Temp_GetEachFeature.NextFeature();
if (Temp_EachFeature != null)
{
IWorkspaceEdit Temp_WorkspaceEdit = (IWorkspaceEdit)
Temp_WorkspaceEdit.StartEditing(true);
Temp_WorkspaceEdit.StartEditOperation();
IFeatureBuffer Temp_FeatureBuffer = Temp_VPFeatureClass.CreateFeatureBuffer();
IFeatureCursor Temp_FeatureCursor = Temp_VPFeatureClass.Insert(true);
//将点存入要素类
while (Temp_EachFeature != null)
{
//获取要素的点集
IPointCollection Temp_Vertices = Temp_EachFeature.Shape as IPointCollection;
for (int i = 0; i < Temp_Vertices.PointCount - 1; i++)
{
Temp_FeatureBuffer.Shape = Temp_Vertices.Point[i];
Temp_FeatureCursor.InsertFeature(Temp_FeatureBuffer);
}
Temp_EachFeature = Temp_GetEachFeature.NextFeature();
}
Temp_FeatureCursor.Flush();
Temp_WorkspaceEdit.StopEditOperation();
Tem