zoukankan      html  css  js  c++  java
  • 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;
                    }
  • 相关阅读:
    【bzoj1408】 Noi2002—Robot
    【bzoj3884】 上帝与集合的正确用法
    【bzoj2190】 SDOI2008—仪仗队
    【uoj264】 NOIP2016—蚯蚓
    【uoj262】 NOIP2016—换教室
    【uoj261】 NOIP2016—天天爱跑步
    python sort 和sorted排序
    mkdir: cannot create directory ‘/soft/hadoop-2.7.3/logs’: Permission denied问题
    RuntimeError: implement_array_function method already has a docstring
    flask 的orm
  • 原文地址:https://www.cnblogs.com/imihiroblog/p/2506813.html
Copyright © 2011-2022 走看看