SDE open rastercatalog,遍历rasterCatalog下的所有RasterDataset

IRasterWorkspaceEx pRasterWex=Utilities.OpenSDERasterWSEx();//访问SDE 中的 RasterCatalog
//连接SDE 中的RasterCatalog
 
public static IRasterWorkspaceEx OpenSDERasterWSEx()
        {
            ESRILicense();//LicenseProduce.Engine 此方法通过.
                          //LicenseProduct.EngienGeoDB 此方法异常

            IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();

            propertySet.SetProperty("SERVER", Configuration.SdeServer);
            propertySet.SetProperty("INSTANCE", Configuration.SdeInstance);
            propertySet.SetProperty("DATABASE", Configuration.SdeDataBase);
            propertySet.SetProperty("USER", Configuration.SdeUser);
            propertySet.SetProperty("PASSWORD", Configuration.SdePassword);
            propertySet.SetProperty("VERSION", Configuration.SdeVersion);

            IWorkspaceFactory pWsFact = new SdeWorkspaceFactory();
            IRasterWorkspaceEx pWs = pWsFact.Open(propertySet, 0) as IRasterWorkspaceEx;
            return pWs;
        }
//遍历RasterCatalog中的所有rasterDataset
IRasterCatalog rasterCatalog= pRasterWex.OpenRasterCatalog(Configuration.SdeRasterCatalog);//遍历RasterCatalog下的所有rasterDataset
            ITable table = rasterCatalog as ITable;
            ICursor cursor = table.Search(null,false);
            IRow row = cursor.NextRow();

            List<IRasterDataset> li_Rasters = new List<IRasterDataset>();//遍历RasterCatalog将所有rasterds添加进去
            while(row != null)
            {
                  IRasterCatalogItem rasterCatalogItem = row as IRasterCatalogItem;
                  IRasterDataset rasterDataset = rasterCatalogItem.RasterDataset;
                 
                  li_Rasters.Add(rasterDataset);
                  row = cursor.NextRow();
            }

//RasterCatalog:

        存储一组空间参考相同的RasterDataset.   RasterCatalog相当于featureclass+raster字段和shape字段,RasterCatalog下的每个RasterDataset相当于一个feature

参考:RasterCatalog ...搜索中的  

 

//以FeatureClass来处理RasterCatalog

IRasterWorkspaceEx pRasterWex=Utilities.OpenSDERasterWSEx();//访问SDE 中的 RasterCatalog
            IRasterCatalog rasterCatalog= pRasterWex.OpenRasterCatalog(Configuration.SdeRasterCatalog);//遍历RasterCatalog下的所有rasterDataset

              IPolyline pPart = new PolylineClass();//相交部分的线

            IFeatureClass pfc = rasterCatalog as IFeatureClass;
            IFeatureCursor pfcc = pfc.Search(null, false);
            IFeature pf = pfcc.NextFeature();
          
            while(pf!=null)
            {
                bool partialintersect = false;

                IRasterCatalogItem rasterCatalogItem = pf as IRasterCatalogItem;
                IRaster pRaster = rasterCatalogItem.RasterDataset.CreateDefaultRaster();//
                string rastername = pf.get_Value(pf.Fields.FindField("Name")).ToString();//RasterDataset的名称
                if (rastername == Configuration.BottomRaster) //如果是最底图层
                {
                    pf = pfcc.NextFeature();
                    continue;
                }



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值