コード例 #1
0
        public IWorkspace OpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type)
        {
            try
            {
                IWorkspaceFactory pTargetWsf = null;
                switch (type)
                {
                case EnumLoaclGeoDatabaseType.MDB:
                    pTargetWsf = new AccessWorkspaceFactory();
                    break;

                case EnumLoaclGeoDatabaseType.GDB:
                    pTargetWsf = new FileGDBWorkspaceFactory();
                    break;

                case EnumLoaclGeoDatabaseType.SHP:
                    pTargetWsf = new ShapefileWorkspaceFactory();
                    break;
                }
                return(pTargetWsf.OpenFromFile(path, 0));
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
                return(null);
            }
        }
コード例 #2
0
ファイル: baseOrder.cs プロジェクト: hehao1999/GIS
        public static void load_personal_database()
        {//代开个人地理数据库
            IWorkspaceFactory pAccessWorkspaceFactory;

            OpenFileDialog pOpenFileDialog = new OpenFileDialog
            {
                Filter = "Personal Geodatabase(*.mdb)|*.mdb",
                Title  = "打开PersonGeodatabase文件"
            };

            pOpenFileDialog.ShowDialog();

            string pFullPath = pOpenFileDialog.FileName;

            if (pFullPath == "")
            {
                return;
            }
            pAccessWorkspaceFactory = new AccessWorkspaceFactory();

            //获取工作空间
            IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0);

            //加载工作空间里的数据
            AddAllDataset(pWorkspace, mainForm.mainform.mainMapControl);
        }
コード例 #3
0
        public void OpenAccessNetwork(string AccessFileName, string FeatureDatasetName)
        {
            IWorkspaceFactory ipWorkspaceFactory;
            IWorkspace        ipWorkspace;
            IFeatureWorkspace ipFeatureWorkspace;
            IFeatureDataset   ipFeatureDataset;

            CloseWorkspace();

            //open the mdb
            ipWorkspaceFactory = new AccessWorkspaceFactory();
            ipWorkspace        = ipWorkspaceFactory.OpenFromFile(AccessFileName, 0);

            //et the FeatureWorkspace
            ipFeatureWorkspace = ipWorkspace as IFeatureWorkspace;

            //open the FeatureDataset
            ipFeatureDataset = ipFeatureWorkspace.OpenFeatureDataset(FeatureDatasetName);

            //initialize Network and Map (m_ipNetwork, m_ipMap)
            if (InitializeNetworkAndMap(ipFeatureDataset))
            {
                MessageBox.Show("Error!");
            }
        }
コード例 #4
0
ファイル: FrmCreateDEM.cs プロジェクト: wwcc19870805/DIFGIS
        private void CreateDEM()
        {
            IWorkspaceFactory pWsF    = new AccessWorkspaceFactory();
            IFeatureWorkspace pWs     = pWsF.OpenFromFile(textEdit1.Text, 0) as IFeatureWorkspace;
            IFeatureDataset   pFDs    = pWs.OpenFeatureDataset("GCD");
            IFeatureClass     pFc     = pFDs as IFeatureClass;
            double            power   = 1;
            object            Missing = Type.Missing;


            IFields pFields = pFc.Fields;
            int     index   = pFields.FindFieldByAliasName("高程");
            string  z       = pFields.get_Field(index).Name;


            IFeatureClassDescriptor feaDes = new FeatureClassDescriptorClass();

            feaDes.Create(pFc, null, z);
            IGeoDataset inGeoDs = feaDes as IGeoDataset;

            IRasterAnalysisEnvironment rasterEnv = new RasterInterpolationOpClass();
            double cellSize    = 20;
            object cellSizeObj = cellSize;

            rasterEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeObj);

            IRasterRadius radius = new RasterRadiusClass();

            radius.SetVariable(12, Missing);

            IInterpolationOp2 interOp  = rasterEnv as IInterpolationOp2;
            IGeoDataset       outGeoDs = interOp.IDW(inGeoDs, power, radius, ref Missing);

            pWs = pWsF.OpenFromFile(textEdit2.Text, 0) as IFeatureWorkspace;
        }
コード例 #5
0
        public static IWorkspace OpenAccessWorkSpace(string accessFilePath)
        {
            IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory();
            IWorkspace        workspace        = workspaceFactory.OpenFromFile(accessFilePath, 0);

            return(workspace);
        }
コード例 #6
0
        public static IWorkspace GetmdbWorkspace(string mdbFilePath)
        {
            AccessWorkspaceFactory accessWorkspaceFactory = new AccessWorkspaceFactory();
            IWorkspace             workspace = accessWorkspaceFactory.OpenFromFile(mdbFilePath, 0);

            return(workspace);
        }
コード例 #7
0
        private IFeatureClass LoadMetaData()
        {
            string            path = Config.GetConfigValue("2DMdbPipe");
            IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
            IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace;

            if (pFWs == null)
            {
                return(null);
            }
            IFeatureDataset pFDs = pFWs.OpenFeatureDataset("Assi_10");

            if (pFDs == null)
            {
                return(null);
            }
            IEnumDataset  pEnumDs = pFDs.Subsets;
            IDataset      fDs;
            IFeatureClass fc = null;

            while ((fDs = pEnumDs.Next()) != null)
            {
                if (fDs.Name == "Metadata")
                {
                    fc = fDs as IFeatureClass;
                }
            }
            return(fc);
        }
コード例 #8
0
 private IFeatureClass GetUpdateRegionFC()
 {
     try
     {
         string            path = Config.GetConfigValue("2DMdbPipe");
         IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
         IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace;
         this.m_Workspace = pFWs as IWorkspace;
         if (pFWs == null)
         {
             return(null);
         }
         IFeatureDataset pFDs = pFWs.OpenFeatureDataset("Assi_10");
         if (pFDs == null)
         {
             return(null);
         }
         IEnumDataset  pEnumDs = pFDs.Subsets;
         IDataset      fDs;
         IFeatureClass fc = null;
         while ((fDs = pEnumDs.Next()) != null)
         {
             if (fDs.Name == "UpdataRegionPLY500")
             {
                 fc = fDs as IFeatureClass;
             }
         }
         return(fc);
     }
     catch (System.Exception ex)
     {
         return(null);
     }
 }
コード例 #9
0
            //注册要素类
            /// <summary>
            /// 返回true说明FeatureClass存在,返回false说明不存在,重新创建
            /// </summary>
            /// <param name="IN_ShapePath"></param>
            /// <returns></returns>
            private bool PRV_AddFeatureClass(string IN_ShapePath)
            {
                string            Temp_Direction         = System.IO.Path.GetDirectoryName(IN_ShapePath);            //该Shp文件的目录
                string            Temp_Name              = System.IO.Path.GetFileNameWithoutExtension(IN_ShapePath); //该Shp文件的名称
                IWorkspaceFactory Temp_ShapeWorkFactory  = new ShapefileWorkspaceFactory();
                IFeatureWorkspace Temp_ShapeWorkspace    = Temp_ShapeWorkFactory.OpenFromFile(Temp_Direction, 0) as IFeatureWorkspace;
                IWorkspaceFactory Temp_AccessWorkFactory = new AccessWorkspaceFactory();
                IFeatureWorkspace Temp_Workspace         = Temp_AccessWorkFactory.OpenFromFile(S_MDBFile, 0) as IFeatureWorkspace;

                IFeatureClassContainer tem_FeatureClassContainer = (IFeatureClassContainer)FDS_Featuredataset;
                IEnumFeatureClass      pEnumFeatureClass         = (IEnumFeatureClass)tem_FeatureClassContainer.Classes;
                IFeatureClass          tem_FeatureClass          = pEnumFeatureClass.Next();

                while (null != tem_FeatureClass)
                {
                    if (Temp_Name == tem_FeatureClass.AliasName)
                    {// return true;
                    }
                    tem_FeatureClass = pEnumFeatureClass.Next();
                }

                IFeatureClass Temp_FeatureClass        = Temp_ShapeWorkspace.OpenFeatureClass(Temp_Name);
                FeatureClassToFeatureClass Temp_FCToFC = new FeatureClassToFeatureClass(IN_ShapePath, S_MDBFile + "\\" + FDS_Featuredataset.Name, Temp_Name);//将Shp文件导入要素数据集

                GP_Progress = GP_Tool.ExecuteAsync(Temp_FCToFC);
                TH_TimeSpan = new Thread(PRV_GetStatus);//开辟线程计时
                TH_TimeSpan.Start();
                TH_TimeSpan.Join();

                return(false);
                // IFeatureClassContainer ss = (FDS_Featuredataset.Workspace as IFeatureWorkspace).OpenFeatureDataset(FDS_Featuredataset.Name) as IFeatureClassContainer;
                //  Console.WriteLine("完成");
            }
コード例 #10
0
ファイル: WorkspaceOperator.cs プロジェクト: secondii/Yutai
        public static IWorkspace CreatePersonGDB(string string_0)
        {
            IWorkspace        workspace = null;
            IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory();

            try
            {
                IWorkspaceName workspaceName =
                    accessWorkspaceFactoryClass.Create(System.IO.Path.GetDirectoryName(string_0),
                                                       System.IO.Path.GetFileNameWithoutExtension(string_0), null, 0);
                workspace = (workspaceName as IName).Open() as IWorkspace;
            }
            catch (COMException cOMException1)
            {
                COMException cOMException = cOMException1;
                int          errorCode    = cOMException.ErrorCode;
                MessageBox.Show(string.Concat("错误代码:", errorCode.ToString(), "\r\n", cOMException.Message));
            }
            catch (Exception exception)
            {
            }
            ComReleaser.ReleaseCOMObject(accessWorkspaceFactoryClass);
            accessWorkspaceFactoryClass = null;
            return(workspace);
        }
コード例 #11
0
ファイル: Form1.cs プロジェクト: Flame-c/CYHGIS
        private void AddGDBLayerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IWorkspaceFactory pAccessWorkspaceFactory;

            OpenFileDialog pOpenFileDialog = new OpenFileDialog
            {
                Filter = "Personal Geodatabase(*.mdb)|*.mdb",
                Title  = "打开PersonGeodatabase文件"
            };

            pOpenFileDialog.ShowDialog();

            string pFullPath = pOpenFileDialog.FileName;

            if (pFullPath == "")
            {
                return;
            }
            pAccessWorkspaceFactory = new AccessWorkspaceFactory(); //using ESRI.ArcGIS.DataSourcesGDB;
            //获取工作空间
            IWorkspace pWorkspace = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0);

            Func.ClearAllData();    //新增删除数据

            //加载工作空间里的数据
            Func.AddAllDataset(pWorkspace, axMapControl1);
        }
コード例 #12
0
ファイル: CmdNewPGDB.cs プロジェクト: secondii/Yutai
        public override void OnClick()
        {
            IGxObject firstObject = ((IGxSelection)_context.GxSelection).FirstObject;

            if (firstObject is IGxFile)
            {
                string path = (firstObject as IGxFile).Path;
                path = (path[path.Length - 1] != '\\'
                    ? string.Concat(path, "\\新建个人数据库")
                    : string.Concat(path, "新建个人数据库"));
                string str = string.Concat(path, ".mdb");
                int    num = 1;
                while (File.Exists(str))
                {
                    num++;
                    str = string.Concat(path, " (", num.ToString(), ").mdb");
                }
                IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory();
                try
                {
                    IWorkspaceName workspaceName = accessWorkspaceFactoryClass.Create(Path.GetDirectoryName(str),
                                                                                      Path.GetFileNameWithoutExtension(str), null, 0);
                    IGxObject gxDatabase = new GxDatabase();
                    (gxDatabase as IGxDatabase).WorkspaceName = workspaceName;
                    IGxCatalog catalog = GxCatalogCommon.GetCatalog(firstObject);
                    gxDatabase.Attach(firstObject, catalog);
                    catalog.ObjectAdded(gxDatabase);
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }
        }
コード例 #13
0
        //选择路径
        private void btnServer_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Filter = "SHP数据|*.shp|MDB数据|*.mdb";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                Cursor           = Cursors.WaitCursor;
                textBoxPath.Text = dlg.FileName;
                if (dlg.FileName.Substring(dlg.FileName.LastIndexOf(".") + 1).ToLower() == "mdb")
                {
                    comboBoxFeature.Enabled = true;
                    IWorkspaceFactory wf = new AccessWorkspaceFactory();
                    IFeatureWorkspace pFeatureWorkspaceMDB = wf.OpenFromFile(@dlg.FileName, 0) as IFeatureWorkspace;
                    IWorkspace        pWorkspaceMDB        = pFeatureWorkspaceMDB as IWorkspace;
                    List <string>     list = Getfeatureclass(pWorkspaceMDB);
                    for (int ii = 0; ii < list.Count; ii++)
                    {
                        comboBoxFeature.Items.Add(list[ii]);
                    }
                }
                Cursor = Cursors.Default;
            }
            if (comboBoxFeature.Items.Count > 0)
            {
                comboBoxFeature.SelectedIndex = 0;
            }
        }
コード例 #14
0
ファイル: Form1.cs プロジェクト: Link2019/AE_QueryDemo
        /// <summary>
        /// 打开数据
        /// </summary>
        private void OpenGDB()
        {
            IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactory() as IWorkspaceFactory;
            IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(Global.GdbPath, 0) as IWorkspace;

            Global.pWorkspace1 = pWorkspace;
        }
コード例 #15
0
        private IWorkspace GetWorkSpace()
        {
            IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
            string            path = Config.GetConfigValue("2DDocument");
            IWorkspace        pWs  = pWsF.OpenFromFile(path, 0);

            return(pWs);
        }
コード例 #16
0
ファイル: WorkspaceOperator.cs プロジェクト: secondii/Yutai
        public static IWorkspace OpenWorkspace(IPropertySet ipropertySet_0)
        {
            IWorkspace        workspace = null;
            IWorkspaceFactory factory;
            Exception         exception;

            if (ipropertySet_0.Count == 1)
            {
                object obj2;
                object obj3;
                string str2 = "";
                ipropertySet_0.GetAllProperties(out obj2, out obj3);
                if (((string[])obj2)[0] == "DATABASE")
                {
                    str2 = System.IO.Path.GetExtension(((object[])obj3)[0].ToString()).ToLower();
                }
                if (str2 == ".mdb")
                {
                    factory = new AccessWorkspaceFactory();
                    try
                    {
                        workspace = factory.Open(ipropertySet_0, 0);
                    }
                    catch (Exception exception1)
                    {
                        exception = exception1;
                        MessageBox.Show(exception.Message);
                    }
                    return(workspace);
                }
                if (str2 == ".gdb")
                {
                    factory = new FileGDBWorkspaceFactory();
                    try
                    {
                        workspace = factory.Open(ipropertySet_0, 0);
                    }
                    catch (Exception exception2)
                    {
                        exception = exception2;
                        MessageBox.Show(exception.Message);
                    }
                }
                return(workspace);
            }
            factory = new SdeWorkspaceFactory();
            try
            {
                workspace = factory.Open(ipropertySet_0, 0);
            }
            catch (Exception exception3)
            {
                exception = exception3;
                MessageBox.Show(exception.Message);
            }
            return(workspace);
        }
コード例 #17
0
        private void LoadDataset()
        {
            IWorkspaceFactory pAccessWorkspaceFactory;
            string            pFullPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\\data\\教室数据\\classroom.mdb";

            pAccessWorkspaceFactory = new AccessWorkspaceFactory(); //using ESRI.ArcGIS.DataSourcesGDB;

            //获取工作空间
            IWorkspace   pWorkspace   = pAccessWorkspaceFactory.OpenFromFile(pFullPath, 0);
            IEnumDataset pEnumDataset = pWorkspace.get_Datasets(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTAny);

            pEnumDataset.Reset();

            //将Enum数据集中的数据一个个读到DataSet中
            IDataset pDataset = pEnumDataset.Next();

            //使用IQueryDef接口的对象来定义和查询属性信息。通过IWorkspace接口的CreateQueryDef()方法创建该对象。
            IQueryDef queryDef = ((IFeatureWorkspace)pDataset.Workspace).CreateQueryDef();

            //设置所需查询的表格名称为dataset的名称
            queryDef.Tables = pDataset.Name;
            string que = null;

            //返回所有值
            queryDef.WhereClause = que;
            //执行查询并返回ICursor接口的对象来访问整个结果的集合
            ICursor cursor = queryDef.Evaluate();

            IRow row = cursor.NextRow();

            dt.Columns.Add(new DataColumn("学部", typeof(string)));    //在表中添加int类型的列
            dt.Columns.Add(new DataColumn("教室", typeof(string)));    //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("教学楼", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("人数", typeof(string)));    //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("语音多媒体", typeof(string))); //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("周次", typeof(string)));    //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("日期", typeof(string)));    //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("1-2", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("3-4", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("3-5", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("6-7", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("8-9", typeof(string)));   //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("8-10", typeof(string)));  //在表中添加string类型的Name列
            dt.Columns.Add(new DataColumn("11-13", typeof(string))); //在表中添加string类型的Name列
            while (row != null)
            {
                DataRow dr1 = dt.NewRow();
                for (int i = 1; i < 15; i++)
                {
                    dr1[i - 1] = row.get_Value(i).ToString();
                }
                dt.Rows.Add(dr1);
                row = cursor.NextRow();
            }
            dataGridView_classquery1.DataSource = dt;
            dataGridView_classquery2.DataSource = dt;
        }
コード例 #18
0
        /// <summary>
        /// 创建数据库
        /// </summary>
        /// <param name="mdbFolder"></param>
        /// <param name="mdbName"></param>
        /// <returns></returns>
        public IWorkspace CreateMdb(string mdbFolder, string mdbName)
        {
            IWorkspaceFactory pFtWsFct          = new AccessWorkspaceFactory();
            IWorkspaceName    workspaceName     = pFtWsFct.Create(mdbFolder, mdbName, null, 0);
            IFeatureWorkspace pFeatureWorkSpace = (workspaceName as IName).Open() as IFeatureWorkspace;
            IWorkspace        pWorkspace        = (workspaceName as IName).Open() as IWorkspace;

            return(pWorkspace);
        }
コード例 #19
0
ファイル: TestSuite.cs プロジェクト: LooWooTech/Traffic
        // 测试导入道路
        public static Form TestCase1()
        {
            var factory2 = new CadWorkspaceFactory();
            try
            {
                var path = System.IO.Path.GetDirectoryName(@"C:\Temp\Traffic\temp.dxf");
                var ws2 = factory2.OpenFromFile(path, 0) as IFeatureWorkspace;

                var fc2 = ws2.OpenFeatureClass(System.IO.Path.GetFileName(@"C:\Temp\Traffic\temp.dxf") + ":polyline");

                var cursor = fc2.Search(null, true);
                var f = cursor.NextFeature();

                var lst = new List<IPolyline>();
                while (f != null)
                {
                    var geo = f.ShapeCopy;
                    if (!(geo is IPolyline) || geo.IsEmpty == true)
                    {
                        MessageBox.Show("当前CAD文件中包含的路线类型信息不正确,请检查。", "注意");
                        Marshal.ReleaseComObject(cursor);
                        return null;
                    }
                    else
                    {
                        lst.Add(geo as IPolyline);
                    }
                    f = cursor.NextFeature();
                }
                Marshal.ReleaseComObject(cursor);

                if (lst.Count == 0)
                {
                    MessageBox.Show("当前CAD文件中不包含路线信息,请检查。", "注意");
                    return null;
                }

                RoadMerger.FragmentThreshold = 20;
                var ls = RoadMerger.SplitLine(lst);

                var factory = new AccessWorkspaceFactory();
                var ws = factory.OpenFromFile(@"C:\Temp\Traffic\db.mdb", 0) as IFeatureWorkspace;
                var fc = ws.OpenFeatureClass("AROAD");
                var historyFC = ws.OpenFeatureClass("ROADHIS");
                var nodeFC = ws.OpenFeatureClass("NODE");

                var lines = RoadMerger.QueryIntersects(ls, fc);

                var form = new ImportRoadForm(ls, fc, historyFC, nodeFC, lines);
                return form;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "注意");
                return null;
            }
        }
コード例 #20
0
ファイル: CmdSDEBackup.cs プロジェクト: wwcc19870805/DIFGIS
        public override void Run(object sender, System.EventArgs e)
        {
            string            path            = Config.GetConfigValue("2DMdbPipe");
            IWorkspaceFactory pWsF            = new AccessWorkspaceFactory();
            IWorkspace        pWs             = pWsF.OpenFromFile(path, 0);
            FrmSDEBackup      m_formSDEBackup = new FrmSDEBackup(pWs);

            m_formSDEBackup.ShowDialog();
        }
コード例 #21
0
ファイル: WorkspaceOperator.cs プロジェクト: secondii/Yutai
        public static IWorkspace OpenWorkspace(IPropertySet ipropertySet_0)
        {
            object            obj;
            object            obj1;
            IWorkspaceFactory sdeWorkspaceFactoryClass;
            IWorkspace        workspace = null;

            if (ipropertySet_0.Count != 1)
            {
                sdeWorkspaceFactoryClass = new SdeWorkspaceFactory();
                try
                {
                    workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0);
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message);
                }
            }
            else
            {
                string str   = "";
                string lower = "";
                ipropertySet_0.GetAllProperties(out obj, out obj1);
                if (((string[])obj)[0] == "DATABASE")
                {
                    str   = ((object[])obj1)[0].ToString();
                    lower = System.IO.Path.GetExtension(str).ToLower();
                }
                if (lower == ".mdb")
                {
                    sdeWorkspaceFactoryClass = new AccessWorkspaceFactory();
                    try
                    {
                        workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0);
                    }
                    catch (Exception exception1)
                    {
                        MessageBox.Show(exception1.Message);
                    }
                }
                else if (lower == ".gdb")
                {
                    sdeWorkspaceFactoryClass = new FileGDBWorkspaceFactory();
                    try
                    {
                        workspace = sdeWorkspaceFactoryClass.Open(ipropertySet_0, 0);
                    }
                    catch (Exception exception2)
                    {
                        MessageBox.Show(exception2.Message);
                    }
                }
            }
            return(workspace);
        }
コード例 #22
0
        /// <summary>
        /// 获取网络数据集
        /// </summary>
        /// <param name="dbFileName">文件路径</param>
        /// <returns></returns>
        public static INetworkCollection OpenNetworkCollection(string dbFileName, string datasetName)
        {
            IWorkspaceFactory  pWF             = new AccessWorkspaceFactory();
            IWorkspace         pWorkspace      = pWF.OpenFromFile(dbFileName, 0);
            IFeatureWorkspace  pFW             = pWorkspace as IFeatureWorkspace;
            IFeatureDataset    pFeatureDataset = pFW.OpenFeatureDataset(datasetName);
            INetworkCollection pNetColl        = pFeatureDataset as INetworkCollection;

            return(pNetColl);
        }
コード例 #23
0
ファイル: TestSuite.cs プロジェクト: LooWooTech/Traffic
        // 测试道路历史
        public static Form TestCase2()
        {
            var factory = new AccessWorkspaceFactory();
            var ws = factory.OpenFromFile(@"C:\Temp\Traffic\db.mdb", 0) as IFeatureWorkspace;
            var fc = ws.OpenFeatureClass("AROAD");
            var historyFC = ws.OpenFeatureClass("ROADHIS");
            var nodeFC = ws.OpenFeatureClass("NODE");

            var form = new HistoryForm(8740, fc, historyFC, nodeFC, null);
            return form;
        }
コード例 #24
0
ファイル: TempAcceessBD.cs プロジェクト: secondii/Yutai
        public void CreateTempDB()
        {
            string text = this.tmpPath + "\\tempAccess";

            this.string_1 = PahtAssistant.GetFinalFileName(text, ".mdb");
            IWorkspaceFactory workspaceFactory         = new AccessWorkspaceFactory();
            string            directoryName            = System.IO.Path.GetDirectoryName(this.string_1);
            string            fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(this.string_1);

            this.iworkspaceName_0 = workspaceFactory.Create(directoryName, fileNameWithoutExtension, null, 0);
        }
コード例 #25
0
ファイル: TempAcceessBD.cs プロジェクト: secondii/Yutai
        public void CreateTempDB()
        {
            string str = string.Concat(this.string_0, "\\tempAccess");

            this.string_1 = PahtAssistant.GetFinalFileName(str, ".mdb");
            IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory();
            string            directoryName            = Path.GetDirectoryName(this.string_1);
            string            fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.string_1);

            this.iworkspaceName_0 = accessWorkspaceFactoryClass.Create(directoryName, fileNameWithoutExtension, null, 0);
        }
コード例 #26
0
ファイル: Presenter.cs プロジェクト: crt106/WhuGIS
        /// <summary>
        /// 打开某层Geo数据库
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        private IFeatureLayer OpenGeoDatabaselayer(string file)
        {
            IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactory();
            IFeatureWorkspace pWorkspace        = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(file, 0);
            IFeatureClass     pFeatureClass     = pWorkspace.OpenFeatureClass("房屋");

            return(new FeatureLayerClass()
            {
                FeatureClass = pFeatureClass,
            });
        }
コード例 #27
0
        private IFeatureClass GetGCD()
        {
            string            path = Config.GetConfigValue("2DMdbPipe");
            IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
            IFeatureWorkspace pFWs = pWsF.OpenFromFile(path, 0) as IFeatureWorkspace;
            IFeatureClass     pFc  = pFWs.OpenFeatureClass("GCD");

            //IFeatureDataset pFDs = pFWs.OpenFeatureDataset("GCD");
            //if (pFDs == null) return null;
            //IFeatureClass pFc = pFDs as IFeatureClass;
            return(pFc);
        }
コード例 #28
0
        //导出xml工作空间文档
        private void ExportWS_Schema(string pGDB, string XmlFile)
        {
            IWorkspaceFactory pWSF = new AccessWorkspaceFactory();
            IWorkspace        pWS;

            pWS = pWSF.OpenFromFile(pGDB, 0);
            IGdbXmlExport pExporter = new GdbExporter();

            pExporter.ExportWorkspaceSchema(pWS, XmlFile, false, true);

            System.Runtime.InteropServices.Marshal.ReleaseComObject(pWSF);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pWS);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(pExporter);
        }
コード例 #29
0
ファイル: Form1.cs プロジェクト: linlongye/DotSpatial_Demo01
        private void button1_Click(object sender, EventArgs e)
        {
            //打开sqlite数据库连接
            SQLiteConnection conn = new SQLiteConnection("Data Source=" + sqlitePath + ";Version=3");

            conn.Open();
            //加载mod_spatialite库
            string sql     = "SELECT load_extension('mod_spatialite');";
            var    command = conn.CreateCommand();

            command.CommandText = sql;
            command.ExecuteScalar();
            //SQLiteTransaction tr = conn.BeginTransaction();
            //command.Transaction = tr;

            //利用arcgis获取access数据库连接
            IWorkspaceFactory pFactory   = new AccessWorkspaceFactory();
            IWorkspace        pWorkspace =
                pFactory.OpenFromFile(
                    @"E:\Project\WindowsFormsApplication13\WindowsFormsApplication13\bin\Debug\db.mdb", 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;

            IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass("dk");
            var           features      = pFeatureClass.Search(null, true);
            IFeature      pfeature      = features.NextFeature();
            int           j             = 1;

            while (pfeature != null)
            {
                IGeometry pGeometry = pfeature.Shape;
                if (pGeometry != null)
                {
                    var geometryWKB = ConvertUtils.ConvertGeometryToWkb(pGeometry);
                    //var geometryWKT = ConvertUtils.ConvertGeometryToWkt(pGeometry);
                    string dkbm = pfeature.get_Value(pfeature.Fields.FindField("dkbm"));

                    string dd = BitConverter.ToString(geometryWKB).Replace("-", "");
                    sql = string.Format("insert into zd_cbd(id,dkbm,Shape) values('{0}',{1},GeomFromWKB(x'{2}',4545))", Guid.NewGuid(), dkbm, dd);

                    command.CommandText = sql;
                    command.ExecuteNonQuery();
                    Debug.WriteLine("成功插入第{0}条数据", j);
                    j++;
                }
                pfeature = features.NextFeature();
                //tr.Commit();
            }

            conn.Close();
        }
コード例 #30
0
        public bool Do()
        {
            string path = this.txtOutGDB.Text.Trim();

            if (path.Length == 0)
            {
                MessageBox.Show("请选择导出位置!");
                return(false);
            }
            if (!(Path.GetExtension(path).ToLower() == ".mdb"))
            {
                MessageBox.Show("请选择正确的导出位置!");
                return(false);
            }
            if (!File.Exists(path))
            {
                IWorkspaceFactory factory = new AccessWorkspaceFactory();
                try
                {
                    IWorkspaceName name = factory.Create(Path.GetDirectoryName(path),
                                                         Path.GetFileNameWithoutExtension(path), null, 0);
                    this.txtOutGDB.Tag = name;
                    goto Label_00EC;
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.ToString());
                    return(false);
                }
            }
            IWorkspaceName name2 = new WorkspaceNameClass
            {
                WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory",
                PathName = path
            };
            IWorkspace workspace = (name2 as IName).Open() as IWorkspace;

            if (!this.method_2(workspace, ExtractionDataHelper.m_pHelper.EnumName))
            {
                return(false);
            }
            this.txtOutGDB.Tag = name2;
Label_00EC:
            ExtractionDataHelper.m_pHelper.ReuseSchema           = this.chkResueSchema.Checked;
            ExtractionDataHelper.m_pHelper.CheckOnlySchema       = this.rdoType.SelectedIndex == 1;
            ExtractionDataHelper.m_pHelper.CheckoutWorkspaceName = this.txtOutGDB.Tag as IWorkspaceName;
            return(true);
        }
コード例 #31
0
        //导入xml工作空间
        private void ImportWS(string dbPath, string pGDB, string XmlFile)
        {
            IWorkspaceFactory pWSF  = new AccessWorkspaceFactory();
            IWorkspaceName    pWSN  = pWSF.Create(dbPath, pGDB, null, 0);
            IName             pName = (IName)pWSN;
            IWorkspace        pWS   = (IWorkspace)pName.Open();

            //导入库结构
            IGdbXmlImport    pImporter = new GdbImporter();
            IEnumNameMapping pEnumName = null;

            pImporter.GenerateNameMapping(XmlFile, pWS, out pEnumName);
            pImporter.ImportWorkspace(XmlFile, pEnumName, pWS, true);

            System.Runtime.InteropServices.Marshal.ReleaseComObject(pWS);
        }
コード例 #32
0
        public IWorkspace CreateOrOpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type)
        {
            try
            {
                IWorkspaceFactory pTargetWsf = null;
                switch (type)
                {
                case EnumLoaclGeoDatabaseType.MDB:
                    pTargetWsf = new AccessWorkspaceFactory();
                    break;

                case EnumLoaclGeoDatabaseType.GDB:
                    pTargetWsf = new FileGDBWorkspaceFactory();
                    break;

                case EnumLoaclGeoDatabaseType.SHP:
                    pTargetWsf = new ShapefileWorkspaceFactory();
                    break;
                }
                if (System.IO.Directory.Exists(path) || System.IO.File.Exists(path))
                {
                    if (pTargetWsf.IsWorkspace(path))
                    {
                        return(pTargetWsf.OpenFromFile(path, 0));
                    }
                    else
                    {
                        ErrorMessage = "当前工作空间已经损坏";
                        return(null);
                    }
                }
                else
                {
                    string         sPath          = System.IO.Path.GetDirectoryName(path);
                    string         sName          = System.IO.Path.GetFileNameWithoutExtension(path);
                    IWorkspaceName pWorkspaceName = pTargetWsf.Create(sPath, sName, null, 0);
                    return(pTargetWsf.Open(pWorkspaceName.ConnectionProperties, 0));
                }
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
                return(null);
            }
        }
コード例 #33
0
ファイル: MainForm.cs プロジェクト: Krystal001025/temp
        public void OpenAccessNetwork(string AccessFileName, string FeatureDatasetName)
        {
            IWorkspaceFactory ipWorkspaceFactory;
            IWorkspace ipWorkspace;
            IFeatureWorkspace ipFeatureWorkspace;
            IFeatureDataset ipFeatureDataset;
            CloseWorkspace();

            //open the mdb
            ipWorkspaceFactory = new AccessWorkspaceFactory();
            ipWorkspace = ipWorkspaceFactory.OpenFromFile(AccessFileName, 0);

            //et the FeatureWorkspace
            ipFeatureWorkspace = ipWorkspace as IFeatureWorkspace;

            //open the FeatureDataset
            ipFeatureDataset = ipFeatureWorkspace.OpenFeatureDataset(FeatureDatasetName);

            //initialize Network and Map (m_ipNetwork, m_ipMap)
            if (InitializeNetworkAndMap(ipFeatureDataset))
            {
                MessageBox.Show("Error!");
            }
        }