コード例 #1
0
        public static IWorkspace OpenSDCWorkSpace(string filePath)
        {
            IWorkspaceFactory workspaceFactory = null;
            IWorkspace        pWorkspace       = null;

            try
            {
                workspaceFactory = null;
                workspaceFactory = new SDCWorkspaceFactoryClass();
                pWorkspace       = workspaceFactory.OpenFromFile(filePath, 0);
                return(pWorkspace);
            }
            catch (Exception ex)
            {
                LOG.Error(ex);
            }
            return(pWorkspace);
        }
コード例 #2
0
ファイル: WorkspaceFun.cs プロジェクト: 605258778/GISData
        /// <summary>
        /// 获取初始化后的各种工作空间
        /// </summary>
        /// <param name="sSourceFile"></param>
        /// <param name="pSourceType"></param>
        /// <returns></returns>
        public IFeatureWorkspace GetFeatureWorkspace(string sSourceFile, WorkspaceSource pSourceType)
        {
            try
            {
                if ((string.IsNullOrEmpty(sSourceFile) | !File.Exists(sSourceFile)) & (string.IsNullOrEmpty(sSourceFile) | !Directory.Exists(sSourceFile)))
                {
                    MessageBox.Show("数据文件 " + sSourceFile + " 丢失。", "打开工作空间错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return(null);
                }
                IWorkspaceFactory factory = null;
                WorkspaceSource   source  = pSourceType;
                if (source <= WorkspaceSource.esriWSStreetMapWorkspaceFactory)
                {
                    if (source < WorkspaceSource.esriWSAccessWorkspaceFactory)
                    {
                        goto Label_010D;//当source<1.返回空
                    }
                    switch (((int)(source - 1L)))
                    {
                    case 0:
                        factory = new AccessWorkspaceFactoryClass();
                        goto Label_0111;

                    case 1:
                    case 4:
                    case 5:
                    case 7:
                    case 8:
                    case 10:
                        goto Label_010D;

                    case 2:
                        factory = new ArcInfoWorkspaceFactoryClass();
                        goto Label_0111;

                    case 3:
                        factory = new CadWorkspaceFactoryClass();
                        goto Label_0111;

                    case 6:
                        factory = new PCCoverageWorkspaceFactoryClass();
                        goto Label_0111;

                    case 9:
                        factory = new SDCWorkspaceFactoryClass();
                        goto Label_0111;

                    case 11:
                        factory = new ShapefileWorkspaceFactoryClass();
                        goto Label_0111;

                    case 12:
                        factory = new StreetMapWorkspaceFactoryClass() as IWorkspaceFactory;
                        goto Label_0111;
                    }
                }
                if ((source <= WorkspaceSource.esriWSFileGDBWorkspaceFactory) && (source >= WorkspaceSource.esriWSVpfWorkspaceFactory))
                {
                    switch (((int)(source - 0x11L)))
                    {
                    case 0:
                        factory = new VpfWorkspaceFactoryClass();
                        goto Label_0111;

                    case 1:
                        factory = new FileGDBWorkspaceFactoryClass();
                        goto Label_0111;
                    }
                }
Label_010D:
                return(null);//返回空

Label_0111:
                if (!factory.IsWorkspace(sSourceFile))
                {
                    return(null);
                }
                return(factory.OpenFromFile(sSourceFile, 0) as IFeatureWorkspace);
            }
            catch (Exception exception)
            {
                this.mErrOpt.ErrorOperate(this.mSubSysName, "FunFactory.WorkspaceFun", "GetFeatureWorkspace", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", "");
                return(null);
            }
        }