当前位置:编程学习 > 网站相关 >>

关于CreateFeatureDataset的错误

现在有个小功能要做,就是通过一段文本坐标在内存图层中生成Feature 并且检查其是否自相交,相交,相连等,对于自相交的问题我是这样想的通过FeatureDataset来进行拓扑验证。但是在创建FeatureDataset时出现错误“未实现该方法或操作“,请各位帮忙解答下。小弟非专业的ae开发人员,望各位能尽量详细解答。
下面是出问题的代码

            try
            {
                IWorkspaceFactory workspaceFactory = new InMemoryWorkspaceFactory();
                ESRI.ArcGIS.Geodatabase.IWorkspaceName workspaceName = workspaceFactory.Create("", "MyWorkspace", null, 0);
                ESRI.ArcGIS.esriSystem.IName name = (IName)workspaceName;
                ESRI.ArcGIS.Geodatabase.IFeatureWorkspace inmemWor = (IFeatureWorkspace)name.Open();
                ISpatialReferenceFactory spatialReferenceFactory = new SpatialReferenceEnvironmentClass();
                ISpatialReference spatialReference = spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Beijing1954);
                spatialReference.SetDomain(-1000, -1000, 1000, 1000);
                spatialReference.SetFalseOriginAndUnits(-180, -90, 1000000);
                IFeatureDataset ds= inmemWor.OpenFeatureDataset("test.mdb");
            }
            catch(Exception ex)
            {

            }

错误出现在最后一句代码 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- IFeatureDataset ds= inmemWor.OpenFeatureDataset("test.mdb"); 嗯 这句写的有问题哦!("test.mdb")应该改为你已经知道的数据集的名称 而不是mdb的名称 懂不? 如果你目前不知道数据及名称可以用另外一个方法 遍历数据集!IenumData
virtual HRESULT __stdcall get_Datasets (
        /*[in]*/ enum esriDatasetType DatasetType,
        /*[out,retval]*/ struct IEnumDataset * * Datasets ) = 0;第一个参数设置成esriDatasetType::esriDTFeatureDataset就行了! --------------------编程问答-------------------- IEnumDataset : IUnknown
{
    //
    // Raw methods provided by interface
    //

      virtual HRESULT __stdcall Next (
        /*[out,retval]*/ struct IDataset * * item ) = 0;
      virtual HRESULT __stdcall Reset ( ) = 0;
};
遍历到IDataset ;然后QI到你想知道的IFeatureDataset 就行了! --------------------编程问答-------------------- IFeatureDataset ds= inmemWor.OpenFeatureDataset("test.mdb");
这句不对啊,怎么写成数据库的名称了,应该是数据集的名称
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,