关于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 inte易做图ce
//
virtual HRESULT __stdcall Next (
/*[out,retval]*/ struct IDataset * * item ) = 0;
virtual HRESULT __stdcall Reset ( ) = 0;
};
遍历到IDataset ;然后QI到你想知道的IFeatureDataset 就行了! --------------------编程问答-------------------- IFeatureDataset ds= inmemWor.OpenFeatureDataset("test.mdb");
这句不对啊,怎么写成数据库的名称了,应该是数据集的名称
补充:企业软件 , 地理信息系统