//函数编号:Raster-08 //函数名:createRasterValue //函数功能:把RasterDataset存储为某一个记录,以便于在RasterCatalog中存储 //参数:pRasterDs:需要存储的RasterDataset //备注:通过该函数可以把设置RasterStorageDef。包括压缩、金字塔的建立等 public IRasterValue createRasterValue(IRasterDataset pRasterDs) { IRasterValue pRasterVal; IRasterStorageDef pRasStoreDef; // ++ storage parameter pRasStoreDef = new RasterStorageDef(); //createRasterStorageDef pRasStoreDef.CompressionType = esriRasterCompressionType.esriRasterCompressionJPEG2000; //esriRasterSdeCompressionTypeEnum.esriRasterSdeCompressionTypeJPEG2000; pRasStoreDef.PyramidResampleType = rstResamplingTypes.RSP_CubicConvolution; //如果PyramidLevel=-1则建立全金字塔, pRasStoreDef.PyramidLevel = -1; // ++ raster value to raster field pRasterVal = new RasterValueClass(); pRasterVal.RasterDataset = pRasterDs; pRasterVal.RasterStorageDef = pRasStoreDef; return(pRasterVal); // ++ cleanup //?问题,已经return后的语句是否能用? //pRasterVal = null; //pRasStoreDef = null; }
//函数号: //函数名:LoadRasterToCatalogDatabase //函数功能:Raster导入Database //参数:pWorkspace:数据库,pWorkspace可以是Access 或者SDE // strCata:Catalog名称 // pRasterDs:需要入库的Rasterdataset //备注:insert a raster dataset with given path and file name to an existing raster catalog public void LoadRasterToCatalogDatabase(IWorkspace pWorkspace, string strCata, IRasterDataset pRasterDs, string name) { //QI IRasterWorkspaceEx to IWorkspace IRasterWorkspaceEx pRasWKS = pWorkspace as IRasterWorkspaceEx; //Open raster catalog //IRasterCatalog相当于一个FeatureClass(表),表中的每一个记录可以存放Raster IRasterCatalog pInCatalog = pRasWKS.OpenRasterCatalog(strCata); // get raster field index int iRaster = pInCatalog.RasterFieldIndex; // QI IFeatureClass for inserting IFeatureClass pFeatureClass = pInCatalog as IFeatureClass; // get insert cursor IFeatureCursor pCursor = pFeatureClass.Insert(false); // create raster value from raster dataset with default storagedef IRasterValue pRasterValue = new RasterValueClass(); pRasterValue.RasterDataset = pRasterDs; pRasterValue.RasterStorageDef = new RasterStorageDefClass(); pRasterValue.RasterDatasetName.NameString = name; //这里可以设置新的RasterStorageDef // insert the rastervalue ' it will update name, metadata and geometry field IFeatureBuffer pRow = pFeatureClass.CreateFeatureBuffer(); pRow.set_Value(iRaster, pRasterValue); pCursor.InsertFeature(pRow); }
public IRasterValue createRasterValue(IRasterDataset pRasterDs, IRasterStorageDef pRasStoreDef) { IRasterValue pRasterVal; pRasterVal = new RasterValueClass(); pRasterVal.RasterDataset = pRasterDs; pRasterVal.RasterStorageDef = pRasStoreDef; return(pRasterVal); // ++ cleanup //?问题,已经return后的语句是否能用? //pRasterVal = null; //pRasStoreDef = null; }
//�����ţ� //��������LoadRasterToCatalogDatabase //�������ܣ�Raster����Database //������pWorkspace�����ݿ⣬pWorkspace������Access ����SDE // strCata��Catalog���� // pRasterDs����Ҫ����Rasterdataset //��ע��insert a raster dataset with given path and file name to an existing raster catalog public void LoadRasterToCatalogDatabase(IWorkspace pWorkspace, string strCata, IRasterDataset pRasterDs,string name) { //QI IRasterWorkspaceEx to IWorkspace IRasterWorkspaceEx pRasWKS = pWorkspace as IRasterWorkspaceEx; //Open raster catalog //IRasterCatalog�൱��һ��FeatureClass����������е�ÿһ����¼���Դ��Raster IRasterCatalog pInCatalog = pRasWKS.OpenRasterCatalog(strCata); // get raster field index int iRaster = pInCatalog.RasterFieldIndex; // QI IFeatureClass for inserting IFeatureClass pFeatureClass = pInCatalog as IFeatureClass; // get insert cursor IFeatureCursor pCursor = pFeatureClass.Insert(false); // create raster value from raster dataset with default storagedef IRasterValue pRasterValue = new RasterValueClass(); pRasterValue.RasterDataset = pRasterDs; pRasterValue.RasterStorageDef = new RasterStorageDefClass(); pRasterValue.RasterDatasetName.NameString = name; //������������µ�RasterStorageDef // insert the rastervalue ' it will update name, metadata and geometry field IFeatureBuffer pRow = pFeatureClass.CreateFeatureBuffer(); pRow.set_Value(iRaster, pRasterValue); pCursor.InsertFeature(pRow); }
public IRasterValue createRasterValue(IRasterDataset pRasterDs, IRasterStorageDef pRasStoreDef) { IRasterValue pRasterVal; pRasterVal = new RasterValueClass(); pRasterVal.RasterDataset = pRasterDs; pRasterVal.RasterStorageDef = pRasStoreDef; return (pRasterVal); // ++ cleanup //�����⣬�Ѿ�return�������Ƿ����ã� //pRasterVal = null; //pRasStoreDef = null; }
//������ţ�Raster-08 //��������createRasterValue //�������ܣ���RasterDataset�洢Ϊijһ����¼���Ա�����RasterCatalog�д洢 //������pRasterDs����Ҫ�洢��RasterDataset //��ע��ͨ���ú�����������RasterStorageDef������ѹ�����������Ľ����� public IRasterValue createRasterValue(IRasterDataset pRasterDs) { IRasterValue pRasterVal; IRasterStorageDef pRasStoreDef; // ++ storage parameter pRasStoreDef = new RasterStorageDef(); //createRasterStorageDef pRasStoreDef.CompressionType = esriRasterCompressionType.esriRasterCompressionJPEG2000; //esriRasterSdeCompressionTypeEnum.esriRasterSdeCompressionTypeJPEG2000; pRasStoreDef.PyramidResampleType = rstResamplingTypes.RSP_CubicConvolution; //���PyramidLevel=-1����ȫ�������� pRasStoreDef.PyramidLevel = -1; // ++ raster value to raster field pRasterVal = new RasterValueClass(); pRasterVal.RasterDataset = pRasterDs; pRasterVal.RasterStorageDef = pRasStoreDef; return (pRasterVal); // ++ cleanup //�����⣬�Ѿ�return�������Ƿ����ã� //pRasterVal = null; //pRasStoreDef = null; }