Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #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
 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);
     }
 }
Пример #5
0
        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);
        }
        public static IWorkspace OpenAccessWorkSpace(string accessFilePath)
        {
            IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactory();
            IWorkspace        workspace        = workspaceFactory.OpenFromFile(accessFilePath, 0);

            return(workspace);
        }
Пример #7
0
        public static IWorkspace GetmdbWorkspace(string mdbFilePath)
        {
            AccessWorkspaceFactory accessWorkspaceFactory = new AccessWorkspaceFactory();
            IWorkspace             workspace = accessWorkspaceFactory.OpenFromFile(mdbFilePath, 0);

            return(workspace);
        }
Пример #8
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);
        }
Пример #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
        //选择路径
        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;
            }
        }
Пример #11
0
        /// <summary>
        /// 打开数据
        /// </summary>
        private void OpenGDB()
        {
            IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactory() as IWorkspaceFactory;
            IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(Global.GdbPath, 0) as IWorkspace;

            Global.pWorkspace1 = pWorkspace;
        }
Пример #12
0
        private IWorkspace GetWorkSpace()
        {
            IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
            string            path = Config.GetConfigValue("2DDocument");
            IWorkspace        pWs  = pWsF.OpenFromFile(path, 0);

            return(pWs);
        }
Пример #13
0
        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();
        }
Пример #14
0
        // 测试导入道路
        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;
            }
        }
Пример #15
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;
        }
        /// <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);
        }
Пример #17
0
        // 测试道路历史
        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;
        }
Пример #18
0
        /// <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,
            });
        }
        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);
        }
Пример #20
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);
        }
Пример #21
0
        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();
        }
Пример #22
0
        public IWorkspace get_PWorkSp()
        {
            IWorkspaceFactory pWorkSpaceFactory = new AccessWorkspaceFactory();
            string            tempfilePath;

            tempfilePath = openPGDB();
            if (tempfilePath != null)
            {
                IWorkspace pWorkSpace = pWorkSpaceFactory.OpenFromFile(tempfilePath, 0);
                //IEnumDataset pEDataset = pWorkSpace.get_Datasets(esriDatasetType.esriDTAny);
                //IDataset pDataset = pEDataset.Next();
                return(pWorkSpace);
            }
            else
            {
                return(null);
            }
        }
Пример #23
0
        public void Add_AccessData()
        {
            IMxDocument pMxDoc;

            pMxDoc = (IMxDocument)ArcMap.Application.Document;

            IMap pMap;

            pMap = pMxDoc.FocusMap;

            IWorkspaceFactory pWSFactory;

            pWSFactory = new AccessWorkspaceFactory();

            IWorkspace pWorkspace;

            pWorkspace = pWSFactory.OpenFromFile("C:/wcgis/geog484/Lesson1/data/Lesson1.mdb", ArcMap.Application.hWnd);

            IFeatureWorkspace pFWorkspace;

            pFWorkspace = (IFeatureWorkspace)pWorkspace;

            IFeatureClass pFClass;

            pFClass = pFWorkspace.OpenFeatureClass("Roads");

            IFeatureLayer pFLayer;

            pFLayer = new FeatureLayer();
            pFLayer.FeatureClass = pFClass;
            pMap.AddLayer(pFLayer);

            var _with1 = pFLayer;

            _with1.Name     = "Roads";
            _with1.ShowTips = true;

            pMxDoc.UpdateContents();

            IActiveView pActiveView;

            pActiveView = (IActiveView)pMap;
            pActiveView.Refresh();
        }
Пример #24
0
 /// <summary>
 /// 获取Access工作空间
 /// </summary>
 /// <param name="mdbPath">Access文件路径</param>
 /// <returns></returns>
 public static IWorkspace GetAccessWorkspace(string mdbPath)
 {
     if (string.IsNullOrWhiteSpace(mdbPath) || !File.Exists(mdbPath))
     {
         throw new Exception(string.Format("MDB文件不存在,文件路径:“{0}”", mdbPath));
     }
     else
     {
         try
         {
             IWorkspaceFactory pWorkspaceFac = new AccessWorkspaceFactory();
             return(pWorkspaceFac.OpenFromFile(mdbPath, 0));
         }
         catch (Exception ex)
         {
             throw new Exception(string.Format("读取MDB文件失败,文件路径:“{0}”", mdbPath), ex);
         }
     }
 }
        /// <summary>
        /// 加载个人地理数据库数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAddPersonalGeodatabase_Click(object sender, EventArgs e)
        {
            string         title           = "打开Personal Geodatabase文件";
            string         filter          = "Personal Geodatabase(*.mdb)|*.mdb";
            OpenFileDialog pOpenFileDialog = createOpenFileDialog(title, filter);
            string         pFullPath       = pOpenFileDialog.FileName;

            if (pFullPath == "")
            {
                return;
            }
            IWorkspaceFactory pAccessWorkspcaeFactory = new AccessWorkspaceFactory();
            // 获取工作空间
            IWorkspace pWorkspace = pAccessWorkspcaeFactory.OpenFromFile(pFullPath, 0);

            ClearAllData();
            // 加载工作空间的数据
            AddAllDataset(pWorkspace, MainMapControl);
        }
Пример #26
0
        /// <summary>
        /// 添加mdb文件
        /// </summary>
        /// <param name="mapControl">要添加数据的控件</param>
        public void AddMdb(AxMapControl mapControl)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Personal Geodatabase(*.mdb)|*.mdb";
            openFileDialog.Title  = "打开PersonGeodatabase文件";
            openFileDialog.ShowDialog();
            string fullPath = openFileDialog.FileName;

            if (fullPath == "")
            {
                return;
            }
            IWorkspaceFactory workspaceFactory  = new AccessWorkspaceFactory();
            IWorkspace        workspace         = workspaceFactory.OpenFromFile(fullPath, 0);
            LoadDatasetHelper loadDatasetHelper = new LoadDatasetHelper();

            loadDatasetHelper.AddAllDataset(workspace, mapControl);
        }
Пример #27
0
        public static IWorkspace OpenPersonGDB(string string_0)
        {
            IWorkspace        workspace = null;
            IWorkspaceFactory o         = new AccessWorkspaceFactory();

            try
            {
                workspace = o.OpenFromFile(string_0, 0);
            }
            catch (COMException exception)
            {
                MessageBox.Show("错误代码:" + exception.ErrorCode.ToString() + "\r\n" + exception.Message);
            }
            catch (Exception)
            {
            }
            ComReleaser.ReleaseCOMObject(o);
            o = null;
            return(workspace);
        }
Пример #28
0
        private Dictionary <string, IDataset> dict; //数据库字典集

        /***************************************************************************
        * 函数名:GdpDrive
        * 参  数:无
        * 返回值:无
        * 功  能:根据给定的数据库文件路径,链接地理数据库数据库
        ***************************************************************************/
        public GdpDrive()
        {
            try
            {
                AccessWorkspaceFactory wsf = new AccessWorkspaceFactory();
                IWorkspace             ws  = wsf.OpenFromFile(GdpPath, 0);
                dict = new Dictionary <string, IDataset>();

                IEnumDataset iterator = ws.get_Datasets(esriDatasetType.esriDTAny);
                IDataset     dataset  = iterator.Next();
                while (dataset != null)
                {
                    if (dataset.Subsets != null)
                    {
                        Console.WriteLine(" + " + dataset.Name + " (Dataset)");
                        IEnumDataset subIterator = dataset.Subsets;
                        IDataset     subDataset  = subIterator.Next();
                        while (subDataset != null)
                        {
                            Console.Write(" |- " + subDataset.Name);
                            if (subDataset is IFeatureClass)
                            {
                                Console.Write(" (Feature Class)\n");
                                dict[subDataset.Name] = subDataset;
                            }
                            subDataset = subIterator.Next();
                        }
                    }
                    else if (dataset is ITable)
                    {
                        Console.WriteLine(" * " + dataset.Name + " (Table)");
                        dict[dataset.Name] = dataset;
                    }
                    dataset = iterator.Next();
                }
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex.Source + ": " + ex.Message);
            }
        }
Пример #29
0
        public ITable GetArcObjectsAccessTable(string leg_tab_pfad, string legendentabelle)
        {
            IWorkspaceFactory pFact;
            IWorkspace        pWorkspace;
            IFeatureWorkspace pFeatws;
            ITable            pTable = null;

            //Legendentabelle für die Abfrage vorbereiten:
            pFact = new AccessWorkspaceFactory();
            try
            {
                pWorkspace = pFact.OpenFromFile(leg_tab_pfad, 0);
                pFeatws    = (IFeatureWorkspace)pWorkspace;
                pTable     = pFeatws.OpenTable(legendentabelle);
            }
            catch (Exception)
            {
                pTable = null;
            }
            return(pTable);
        }
Пример #30
0
        public static IWorkspace OpenPersonGDB(string string_0)
        {
            IWorkspace        workspace = null;
            IWorkspaceFactory accessWorkspaceFactoryClass = new AccessWorkspaceFactory();

            try
            {
                workspace = accessWorkspaceFactoryClass.OpenFromFile(string_0, 0);
            }
            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);
        }
Пример #31
0
        public override void Run(object sender, System.EventArgs e)
        {
            try
            {
                FrmLayoutPage dialog  = new FrmLayoutPage();
                IMap2DView    mapView = UCService.GetContent(typeof(Map2DView)) as Map2DView;
                if (mapView == null)
                {
                    return;
                }
                DF2DApplication app = DF2DApplication.Application;
                if (app == null || app.Current2DMapControl == null)
                {
                    return;
                }
                string            path = Config.GetConfigValue("2DMdbPipe");
                IWorkspaceFactory pWsF = new AccessWorkspaceFactory();
                IWorkspace        pWs  = pWsF.OpenFromFile(path, 0);

                if (pWs == null)
                {
                    return;
                }

                FrmStandardOutput sOutput = new FrmStandardOutput(pWs);

                sOutput.ShowDialog();

                if (sOutput.DialogResult == DialogResult.OK)
                {
                    this.DoSomething(sOutput, dialog);
                    dialog.Show();
                }
            }
            catch (System.Exception ex)
            {
                return;
            }
        }
Пример #32
0
        private void PersonGeodatabaseLoad_Click(object sender, EventArgs e)
        {
            OpenFileDialog pOpenFileDialog = new OpenFileDialog();

            pOpenFileDialog.Filter = "Personal Geodatabase(*.mdb)|*.mdb";
            pOpenFileDialog.Title  = "打开PersonGeodatabase文件";
            pOpenFileDialog.ShowDialog();

            string pFullPath = pOpenFileDialog.FileName;

            if (pFullPath == "")
            {
                return;
            }
            IWorkspaceFactory pAccessWorkspaceFactory = new AccessWorkspaceFactory();//using ESRI.ArcGIS.DataSourcesGDB

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

            ClearAllData();
            //加载工作空间里的数据
            AddAllDataset(pWorkspace, mainMapControl);
        }
Пример #33
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!");
            }
        }