AE+C#将E00数据导入到ArcSDE中去

介绍两种AE+C#E00数据导入到ArcSDE中去的方法。

首先,需要将AE的互操作扩展的授权加上,我们在VS2010中新建一个WinFrom工程,引入一个License Control,设置如下图

 

然后,需要增加一个连接SDE数据库的方法

 

 

 

       publicstaticIPropertySet getPropertySet()

 

       {

 

           IPropertySet Propset = newPropertySetClass();

 

           try

 

           {

 

                Propset.SetProperty(“SERVER, “esri-2003);

 

                Propset.SetProperty(“INSTANCE, “port:5151);

 

                Propset.SetProperty(“USER, “sde);

 

                Propset.SetProperty(“PASSWORD, “sde);

 

                Propset.SetProperty(“DATABASE, “orcl);

 

                Propset.SetProperty(“VERSION, “SDE.DEFAULT);

 

 

 

                returnPropset;

 

           }

 

           catch (Exception ex)

 

           {

 

                stringmsg = ex.Message;

 

                returnPropset;

 

           }

 

       }

 

 

 

 

 

方法一:通过GP调用FeatureClassToGeodatabase组件实现E00数据导入到ArcSDE中。

 

       ///<summary>

 

       ///

 

       ///</summary>

 

       ///<param name=”e00path”></param>

 

       ///<param name=”sdePath”>不带图层名称</param>

 

       publicstaticvoid e00FeatureClassToGeodatabase(string e00path, string sdePath)

 

       {

 

           ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase featureClassToGeodatabase= newFeatureClassToGeodatabase();

 

           featureClassToGeodatabase.Output_Geodatabase = sdePath;

 

           featureClassToGeodatabase.Input_Features = e00path;

 

           Geoprocessor geoprocessor = newGeoprocessor();

 

           geoprocessor.OverwriteOutput = true;

 

           try

 

           {

 

               geoprocessor.Execute(featureClassToGeodatabase, null);

 

                stringmess = null;

 

                for (int k = 0; k < geoprocessor.MessageCount; k++)

 

                {

 

                    mess +=geoprocessor.GetMessage(k) +
;

 

                }

 

                MessageBox.Show(mess);

 

           }

 

           catch (Exception ex)

 

           {

 

                stringmess = null;

 

                for (int k = 0; k < geoprocessor.MessageCount; k++)

 

                {

 

                    mess +=geoprocessor.GetMessage(k) +
;

 

                }

 

           }

 

       }

 

 

 

 

 

 

 

方法二:通过GP调用CopyFeatures组件实现E00数据导入到ArcSDE中。

 

 

 

       ///<summary>

 

       ///

 

       ///</summary>

 

       ///<param name=”e00Path”></param>

 

       ///<param name=”sdePath”>带图层名称</param>

 

       publicstaticvoid e00CopyFeaturesToSDE(string e00Path, stringsdePath)

 

       {

 

           IVariantArray parameters = newVarArrayClass();

 

           parameters.Add(e00Path);

 

           parameters.Add(sdePath);

 

           Geoprocessor geoprocessor = newGeoprocessor();

 

           geoprocessor.OverwriteOutput = true;

 

           try

 

           {

 

                geoprocessor.Execute(“CopyFeatures, parameters, null);

 

 

 

                stringmess = null;

 

                for (int k = 0; k < geoprocessor.MessageCount; k++)

 

                {

 

 

 

                    mess +=geoprocessor.GetMessage(k) +
;

 

 

 

                }

 

           }

 

           catch (Exception ex)

 

           {

 

                stringmess = null;

 

                for (int k = 0; k < geoprocessor.MessageCount; k++)

 

                {

 

                    mess +=geoprocessor.GetMessage(k) +
;

 

                }

 

           }

 

       }

 

 

 

 

 

然后在窗体上增加一个按钮Button1,增加Click事件

 

 

 

       privatevoid button1_Click(object sender, EventArgs e)

 

       {

 

           string path = @”C:est;

 

           string sdeName = @”test.sde;

 

           string sdePath = path + “\ + sdeName;

 

           if (File.Exists(sdePath))

 

           {

 

                File.Delete(sdePath);

 

           }

 

           IWorkspaceFactory workspaceFactory = newSdeWorkspaceFactoryClass();

 

           IWorkspaceName workspaceName =workspaceFactory.Create(path, sdeName, getPropertySet(), 0);

 

 

 

           //方法一通过FeatureClassToGeodatabase        

 

           e00FeatureClassToGeodatabase(@”C: estcontinent.e00CONTINENT_point, sdePath);

 

           //方法二通过 CopyFeatures          

 

           e00CopyFeaturesToSDE(@”C: estcontinent.e00CONTINENT_arc, sdePath + @”CONTINENT_arc);

 

       }

 

 

 

以上两种方式将E00数据导入到ArcSDE管理的数据库中去。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值