AE中给SDE要素集IFeatureDataset添加要素类FeatureClass遇到问题

public void ReplaceFeatureClass(IWorkspace pWorkspace,IFeatureClass sourceFeatureClass,string str_TargetDatasetName,string str_featureClassName)
        {
            IDataset pDataset = getDataset(str_TargetDatasetName);
            IFeatureClass pFeatureClass = GetFeatClass(pDataset,str_featureClassName);
            //IDataset delFeatCls = pFeatureClass as IDataset;
            //if (delFeatCls.CanDelete()) delFeatCls.Delete();
            //IDataset tempDs = sourceFeatureClass as IDataset;
            //tempDs.Rename(str_featureClassName);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            IFeatureDataset pFeatureDataset =
pFeatureWorkspace.OpenFeatureDataset(str_TargetDatasetName);
            
            //更改源要素类的参考空间
            IGeoDataset sourceGeoDataset = sourceFeatureClass as IGeoDataset;
            IGeoDataset targetGeoDataset = pFeatureDataset as IGeoDataset;
            IGeoDatasetSchemaEdit pGeoDatasetSchemaEdit = sourceGeoDataset as IGeoDatasetSchemaEdit;
            if (pGeoDatasetSchemaEdit.CanAlterSpatialReference == true)
                pGeoDatasetSchemaEdit.AlterSpatialReference(targetGeoDataset.SpatialReference);
            //更改源要素类的参考空间

            IDatasetContainer pDatasetContainer = pFeatureDataset as IDatasetContainer;
            pDatasetContainer.AddDataset(sourceFeatureClass as IDataset);
            
        }

1.png
已邀请:

朱新颖

赞同来自:

IDatasetContainer的帮助中说明:
Remarks

The IDatasetContainer interface lets you move datasets between feature datasets and workspaces—both objects implement the interface. It should only be used to move datasets between feature datasets and the workspace level within a single workspace, however; it cannot be used to transfer datasets from one workspace to another.

Note that when moving feature classes into a feature dataset, the spatial reference of the source feature class must match the spatial reference of the target feature dataset into which it is being moved.
 
您现在是在同一个workspace中移动吗?

要回复问题请先登录注册