zoukankan      html  css  js  c++  java
  • 遍历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;
                    }
  • 相关阅读:
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 697 数组的度(类似于数组的map)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 696 计数二进制子串(暴力)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    Java实现 LeetCode 695 岛屿的最大面积(DFS)
    PHP serialize() 函数
    PHP print_r() 函数
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/3020228.html
Copyright © 2011-2022 走看看