Exemple #1
0
        //根据存放网络数据集的工作空间和网络数据集名称以及要素数据集名称打开网络数据集
        public static INetworkDataset OpenPathNetworkDataset(IWorkspace networkDatasetWorkspace,
                                                             string networkDatasetName, string featureDatasetName)
        {
            if (networkDatasetWorkspace == null || networkDatasetName == "" ||
                featureDatasetName == null)
            {
                return(null);
            }
            IDatasetContainer3 datasetContainer3 = null;//数据集容器。数据集的集合
            IFeatureWorkspace  featureWorkspace  = networkDatasetWorkspace as IFeatureWorkspace;
            IFeatureDataset    featureDataset;

            featureDataset = featureWorkspace.OpenFeatureDataset(featureDatasetName);//根据名字打开要素数据集
            IFeatureDatasetExtensionContainer featureDataExtensionContainer =
                featureDataset as IFeatureDatasetExtensionContainer;
            IFeatureDatasetExtension featureDatasetExtension = featureDataExtensionContainer.FindExtension(
                esriDatasetType.esriDTNetworkDataset);

            datasetContainer3 = featureDatasetExtension as IDatasetContainer3;
            if (datasetContainer3 == null)
            {
                return(null);
            }
            IDataset dataSet = datasetContainer3.get_DatasetByName(esriDatasetType.esriDTNetworkDataset,
                                                                   networkDatasetName);

            return(dataSet as INetworkDataset);
        }
        /// <summary>
        /// 打开网络数据集
        /// </summary>
        public INetworkDataset OpenNetworkDataset(IWorkspace networkDatasetWorkspace, System.String networkDatasetName, System.String featureDatasetName)
        {
            if (networkDatasetWorkspace == null || networkDatasetName == "" || featureDatasetName == null)
            {
                return(null);
            }
            IFeatureWorkspace featureWorkspace = networkDatasetWorkspace as IFeatureWorkspace;

            featureDataset = featureWorkspace.OpenFeatureDataset(featureDatasetName);
            IFeatureDatasetExtensionContainer featureDatasetExtensionContainer = featureDataset as IFeatureDatasetExtensionContainer;
            IFeatureDatasetExtension          featureDatasetExtension          = featureDatasetExtensionContainer.FindExtension(esriDatasetType.esriDTNetworkDataset);
            IDatasetContainer3 datasetContainer3 = (IDatasetContainer3)featureDatasetExtension;

            if (datasetContainer3 == null)
            {
                return(null);
            }
            IDataset dataset = datasetContainer3.get_DatasetByName(esriDatasetType.esriDTNetworkDataset, networkDatasetName);

            return(dataset as INetworkDataset);
        }
        public static IDatasetContainer3 GetDatasetContainer(IFeatureWorkspace featureWorkspace, string fdName)
        {
            IDatasetContainer3 datasetContainer = null;

            if (featureWorkspace is IWorkspace2)
            {
                IWorkspace2 workspace = featureWorkspace as IWorkspace2;
                bool        fdExists  = workspace.get_NameExists(esriDatasetType.esriDTFeatureDataset, fdName);
                if (!fdExists)
                {
                    throw new Exception("Feature Dataset does not exist.");
                }
            }

            IFeatureDatasetExtensionContainer fdExtensionContainer = (IFeatureDatasetExtensionContainer)featureWorkspace.OpenFeatureDataset(fdName);

            datasetContainer = (IDatasetContainer3)fdExtensionContainer.FindExtension(esriDatasetType.esriDTNetworkDataset);
            if (datasetContainer == null)
            {
                throw new Exception("NATestNetworkDataset: dataset container should not be null");
            }

            return(datasetContainer);
        }