异常来自 HRESULT:0x80040258

C#AE开发对图层要素进行叠置分析时,老是报错,异常来自 HRESULT:0x80040258

代码如下:

public void Clip(AxMapControl m_map)
{
    try
    {
        //分析层
        ILayer pLayer = m_map.get_Layer(0);
        IFeatureLayer pInputFeatLayer = pLayer as IFeatureLayer;
        ITable pInputTable = pLayer as ITable;
        IFeatureClass pInputFeatClass = pInputFeatLayer.FeatureClass;

        //叠加表
        pLayer = m_map.get_Layer(1);
        ITable pOverlayTable = pLayer as ITable;

        //叠加分析表
        IFeatureClassName pFeatClassName = new FeatureClassNameClass();
        pFeatClassName.FeatureType = esriFeatureType.esriFTSimple;
        pFeatClassName.ShapeFieldName = "shape";
        pFeatClassName.ShapeType = pInputFeatClass.ShapeType;

        //工作空间名称
        IWorkspaceName pNewWSName = new WorkspaceNameClass();
        pNewWSName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory";
        pNewWSName.PathName = @"D:\a";

        //数据集名称
        IDatasetName pDatasetName = pFeatClassName as IDatasetName;
        pDatasetName.Name = "intersectshp";
        pDatasetName.WorkspaceName = pNewWSName;

        //几何处理
        IBasicGeoprocessor pBGP = new BasicGeoprocessorClass();
        pBGP.SpatialReference = m_map.SpatialReference;
        IFeatureClass pOutputFeatClass = pBGP.Intersect(pInputTable, false, pOverlayTable, false, 0, pFeatClassName);

        //输出要素层设置
        IFeatureLayer pOutputFeatLayer = new FeatureLayerClass();
        pOutputFeatLayer.FeatureClass = pOutputFeatClass;
        pOutputFeatLayer.Name = pOutputFeatClass.AliasName;
        
        //添加图层
	m_map.AddLayer((ILayer)pOutputFeatLayer, 0);
        m_map.Update();
    }
    catch (Exception ex)
    {
        LogHelper.Error(ex.Message);
    }
}

 调试每次到IFeatureClass pOutputFeatClass = pBGP.Intersect(pInputTable, false, pOverlayTable, false, 0, pFeatClassName);就报错,也不知道为什么报错,调了好几个地方,后面发现,是路径的问题,设置工作空间路径pNewWSName.PathName = @"D:\a";这一句,我原本的路径是不存在的,本以为它会新建,事实上,并没有.把这里改成已有文件夹路径,上面的几何处理语句就可以通过了。 
  

你可能感兴趣的:(C#,GIS)