ASP.NET AJAX中的异步Web Services调用

本文介绍了一种将Access数据库中的地理数据加载并显示在地图上的方法。通过使用ArcGIS API,可以实现从个人地理数据库(*.mdb)读取数据,并将其作为图层添加到地图中进行可视化展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将Access数据文件中的数据集添加到地图中

        /// <summary>
        /// 添加Access 个人数据库数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addPGMenuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Personal Geodatabase(*.mdb)|*.mdb";
            dlg.Title = "选择数据";

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                string strPath = dlg.FileName;

                IWorkspaceName pWorkspaceName = new WorkspaceNameClass();
                pWorkspaceName.WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory";
                pWorkspaceName.PathName = strPath;

                IName pName = pWorkspaceName as IName;
                IWorkspace pWorkspace = pName.Open() as IWorkspace;
                IEnumDataset pEnumDataset = pWorkspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);

                AddEnumDatasetToMap(pEnumDataset, m_MapControl.Map);
            }
        }

循环添加所有数据

        /// <summary>
        /// 将Dataset添加到地图中
        /// </summary>
        /// <param name="pEnumDataset"></param>
        private void AddEnumDatasetToMap(IEnumDataset pEnumDataset, IMap pMap)
        {
            if (pEnumDataset == null)
                return;

            pEnumDataset.Reset();
            IDataset pDataset = pEnumDataset.Next();
            while (pDataset != null)
            {
                if (pDataset.Type == esriDatasetType.esriDTFeatureDataset)
                {
                    IEnumDataset pSubEnumDataset = pDataset.Subsets;
                    AddEnumDatasetToMap(pSubEnumDataset, pMap);
                }
                else if (pDataset.Type == esriDatasetType.esriDTFeatureClass)
                {
                    IFeatureClass pFeatureClass = pDataset as IFeatureClass;
                    IFeatureLayer pFeatureLayer = new FeatureLayerClass();
                    pFeatureLayer.FeatureClass = pFeatureClass;
                    pFeatureLayer.Name = pFeatureClass.AliasName;
                    pMap.AddLayer(pFeatureLayer as ILayer);
                }

                pDataset = pEnumDataset.Next();
            }
        } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值