ArcGis连接sde并取数据

本文介绍了一种使用 ArcGIS API 连接 SDE 数据库的方法,并详细展示了如何通过 C# 代码实现地图图层的设定过程。文章包括了许可验证、工作空间配置、属性设置及图层加载等关键步骤。
部署运行你感兴趣的模型镜像

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//ESRI
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesGDB;

// ArcGIS Engine引用
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.ToolbarControl;
using ESRI.ArcGIS.TOCControl;
//using ESRI.ArcGIS.MapControl;
using ESRI.ArcGIS.PageLayoutControl;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.GlobeCore;
using System.Runtime.InteropServices;

  /// <summary>
        /// 连接sde数据库,并设定map的图层
        /// </summary>
        private void GetSdeData()
        {
            /**连接sde数据库**/
            //License
            IAoInitialize pAoInit = new AoInitializeClass();
            pAoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcView);

            //Workspace
            IWorkspaceFactory pWorkspaceFactory;
            pWorkspaceFactory = new SdeWorkspaceFactoryClass();

            //PropertySet
            IPropertySet pPropertySet;
            pPropertySet = new PropertySetClass();
            pPropertySet.SetProperty("Service", "esri_sde");
            pPropertySet.SetProperty("Server", "192.168.25.110");
            //pPropertySet.SetProperties("Database","wjgis");
            pPropertySet.SetProperty("Instance", "port:5151");
            pPropertySet.SetProperty("user", "sangis");
            pPropertySet.SetProperty("password", "sangis");
            pPropertySet.SetProperty("version", "sde.DEFAULT");

            //IFeatureWorkspace对象
            IFeatureWorkspace pSdeWorkspace;

            IFeatureDataset pFeatureDataset;
            IFeatureClass pFeatureClass;

            //图层
            IFeatureLayer layer;


            try
            {
                //连接
                pSdeWorkspace = (IFeatureWorkspace)pWorkspaceFactory.Open(pPropertySet, 0);
                //取数据
                pFeatureDataset = pSdeWorkspace.OpenFeatureDataset("buj");
                pFeatureClass = pSdeWorkspace.OpenFeatureClass("TV井盖");
                //定义图层
                layer = new FeatureLayerClass();
                //设定layer的FeatureClass属性
                layer.FeatureClass = pFeatureClass;
                //设定Map的图层
                MapControl.Map.AddLayer(layer);
            }
            catch (Exception ex)
            {

                MessageBox.Show("SDE数据库不能连接!" + ex.Message);
                //text_sqlfilter.Text = ex.Message;
            }
        }

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

ArcGIS连接Oracle数据库数据导入SDE(Spatial Database Engine)涉及多个关键步骤,包括配置数据库、创建企业地理数据库、建立连接以及导入数据等过程。以下是详细的步骤说明: ### 连接 Oracle 数据库启用企业地理数据库 1. **确保 Oracle 数据库已正确安装配置** Oracle数据库必须支持ArcGIS的版本要求,安装了必要的补丁。需要确保Oracle Net(监听器)服务正在运行,且能够通过网络访问数据库。 2. **安装 ArcGIS Server 或 ArcGIS Desktop 企业级数据库支持组件** ArcGIS 企业地理数据库支持 Oracle 作为其关系数据库管理系统(RDBMS)。确保安装了适用于 Oracle 的 ArcGIS 客户端库(如 Oracle Instant Client)[^2]。 3. **使用 ArcGIS 创建企业地理数据库** 打开 ArcCatalog 或 ArcGIS Pro,进入“数据库连接”部分,选择“创建企业级地理数据库”。在连接属性中填写 Oracle 数据库连接信息,包括: - 实例名称(Oracle 服务名) - 认证方式(如数据库用户或操作系统认证) - 管理员用户名和密码 创建完成后,ArcGIS 会自动在 Oracle 中创建 SDE 用户和地理数据库架构。 4. **验证企业地理数据库是否创建成功** 可通过 SQL 查询 Oracle 数据库中的 `SDE.TABLE_REGISTRY` 表来确认是否成功注册了地理数据库对象。 ### 建立 ArcGIS 与 Oracle 数据库连接 1. **在 ArcGIS 中创建数据库连接文件(.sde)** 打开 ArcCatalog,进入“数据库连接”目录,右键选择“添加数据库连接”,选择数据库平台为 Oracle,填写如下信息: - 实例:Oracle 服务名(例如 `ORCL`) - 认证类型:选择数据库认证或操作系统认证 - 用户名和密码:具有 SDE 权限的用户 - 保存用户名和密码(可选) 2. **测试连接** 成功连接后,可以在 ArcCatalog 中看到 Oracle 数据库中的表和要素类。 ### 将数据导入 SDE 1. **通过 ArcGIS 桌面工具导入数据** 使用 ArcMap 或 ArcGIS Pro 的“导入要素类”工具,选择本地数据(如 Shapefile 或 File Geodatabase导入到 Oracle SDE 数据库中。导入过程中,ArcGIS 会将空间数据转换为 Oracle 中的 ST_Geometry 或其他支持的空间类型。 2. **使用 Python 脚本或模型构建器批量导入** 可以编写 Python 脚本,使用 `arcpy` 模块将多个数据集批量导入 SDE 数据库。例如: ```python import arcpy # 设置工作空间 arcpy.env.workspace = r"C:\data\my_data.gdb" # 设置目标 SDE 连接 sde_conn = r"C:\connections\my_oracle_sde.sde" # 导入要素类 for fc in arcpy.ListFeatureClasses(): arcpy.FeatureClassToGeodatabase_conversion(fc, sde_conn) ``` 3. **验证导入结果** 使用 ArcGIS 或 Oracle SQL Developer 查询目标表,确认数据已成功导入保留空间属性。 ### 注意事项 - 确保 Oracle 客户端库路径已添加到系统环境变量中。 - 若 Oracle 使用非标准端口,需在连接字符串中指定(如使用 `localhost:1522/ORCL`)。 - 在导入大型数据集时,建议使用 ArcGIS Server 的地理处理服务或后台任务以提高性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值