我用.net编写的栅格数据入库代码
我用C#编写的栅格数据入库代码-----
OpenFileDialog flg = new OpenFileDialog();
flg.Title = "打开文件数据";
flg.CheckFileExists = true;
flg.CheckPathExists = true;
flg.AddExtension = true;
flg.Multiselect = false;
flg.Filter = "IMG文件(.shp) | *.img";
if (flg.ShowDialog() == DialogResult.OK)
{
ImportShapeFileName = flg.FileName;
}
if (ImportShapeFileName == "")
this.Close();
IPropertySet pPropSet = new PropertySetClass();
IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass();
pPropSet.SetProperty("SERVER", "loushurong");
pPropSet.SetProperty("INSTANCE", "esri_sde");
pPropSet.SetProperty("DATABASE", "orcl");
pPropSet.SetProperty("USER", "sde");
pPropSet.SetProperty("PASSWORD", "zmmin383");
pPropSet.SetProperty("VERSION", "SDE.DEFAULT");
ws = pSdeFact.Open(pPropSet, 0);
string ImportFileShortName =
System.IO.Path.GetFileNameWithoutExtension(ImportShapeFileName);
string ImportFilePath =
System.IO.Path.GetDirectoryName(ImportShapeFileName);
IRasterSdeConnection pSDEConn = new RasterSdeLoaderClass();
pSDEConn.ServerName = "loushurong";
pSDEConn.Instance = "esri_sde";
pSDEConn.Database = "orcl";
pSDEConn.UserName = "sde";
pSDEConn.Password = "zmmin383";
pSDEConn.InputRasterName = ImportShapeFileName;
pSDEConn.SdeRasterName = ImportFileShortName;
IWorkspaceFactory pRasterWsFact = new RasterWorkspaceFactoryClass();
IWorkspace workspace = pRasterWsFact.OpenFromFile(ImportFilePath,
0);//Open(pPropSet, 0);//OpenFromFile(ImportFilePath, 0);
IRasterWorkspace pRasterWs = (IRasterWorkspace)workspace;
IRasterDataset pRasterDs =
pRasterWs.OpenRasterDataset(ImportFileShortName);
IGeoDataset pGeoDs = (IGeoDataset)pRasterDs;
ISpatialReference spref = pGeoDs.SpatialReference;
//设置存储属性
IRasterSdeStorage pSDEStorage = (IRasterSdeStorage)pSDEConn;
//设置空间参考
pSDEStorage.SpatialReference = spref;
//设置压缩方式
pSDEStorage.CompressionType = esriRasterSdeCompressionTypeEnum.esriRasterSdeCompressionTypeRunLength;
//设置分块尺寸
pSDEStorage.TileHeight = 128;
pSDEStorage.TileWidth = 128;
//金字塔选项
pSDEStorage.PyramidOption = esriRasterSdePyramidOptEnum.esriRasterSdePyramidBuildWithFirstLevel;//RSP_Biline
arInterpolation;
pSDEStorage.PyramidResampleType = 0;
//开始导入数据
IRasterSdeServerOperation pSDEOp = (IRasterSdeServerOperation)pSDEConn;
//创建数据集
pSDEOp.Create();
MessageBox.Show("o");
}运行到IRasterDataset pRasterDs = pRasterWs.OpenRasterDataset(ImportFileShortName);时抛出异常---
RasterDataset::get_Count
RasterDataset::get_Count
请问如何解决,谢谢
IPropertySet pProp = new PropertySetClass();
pProp.SetProperty("SERVER", "zhangye");//设置数据库服务器名
pProp.SetProperty("INSTANCE", "port:5151");//设置SDE的端口,这是安装时指定的,默认为“port:5151"
pProp.SetProperty("DATABASE", "orcl");//设置数据库的名字,只有SQL Server Informix 数据库才需要设置
pProp.SetProperty("USER", "sde"); //SDE的用户名
pProp.SetProperty("PASSWORD", "sde");//密码
pProp.SetProperty("VERSION", "SDE.DEFAULT");
IWorkspaceFactory2 Fact = new SdeWorkspaceFactoryClass();
//打开SDE工作空间,并转化为地物工作空间
IWorkspace ws = Fact.Open(pProp,0);
if (ws == null)
{
MessageBox.Show("sde连接不成功");
this.Close();
}
else
{
IWorkspaceName pWorkname = new
ESRI.ArcGIS.Geodatabase.WorkspaceNameClass();
pWorkname.ConnectionProperties = pProp;
//pWorkname.WorkspaceFactoryProgID =
"esriDataSourcesGDB.SdeWorkspaceFactory.1";
IRasterSdeConnection pSdeCon = new RasterSdeLoaderClass();
//pSdeCon.SdeWorkspaceName = pWorkname;
pSdeCon.ServerName = "192.168.9.177";
pSdeCon.Instance = "port:5151";
pSdeCon.UserName = "sde";
pSdeCon.Password = "sde";
pSdeCon.Database = "orcl";
pSdeCon.SdeRasterName = "S20080622130000";
pSdeCon.InputRasterName = @"d:\test\20080622130000.img";
IRasterSdeStorage pSDEStorage = (IRasterSdeStorage)pSdeCon;
IWorkspaceFactory pWKSF = new RasterWorkspaceFactoryClass();
IWorkspace pWorkspace = pWKSF.OpenFromFile(@"d:\test", 0);
IRasterWorkspace pRasterWS = (IRasterWorkspace)pWorkspace;
IGeoDataset pGeoDs =
(IGeoDataset)pRasterWS.OpenRasterDataset("20080622130000.img");
// Set spatialreference
pSDEStorage.SpatialReference = pGeoDs.SpatialReference;
// Set compression
pSDEStorage.CompressionType =
esriRasterSdeCompressionTypeEnum.esriRasterSdeCompressionTypeUncompressed;
//Set tilesize
pSDEStorage.TileHeight = 128;
pSDEStorage.TileWidth = 128;
// Pyramids option
pSDEStorage.PyramidOption =
esriRasterSdePyramidOptEnum.esriRasterSdePyramidBuildWithFirstLevel;
pSDEStorage.PyramidResampleType = rstResamplingTypes.RSP_BilinearInterpolation;
//pSDEStorage.CompressionType = esriRasterSdeCompressionTypeJPEG2000;
// Start loading
IRasterSdeServerOperation pSDEOp = (IRasterSdeServerOperation)pSdeCon;
pSDEOp.Create();
pSDEOp.Update();
pSDEOp.ComputeStatistics();
//释放内存
pSdeCon = null;
pSDEStorage = null;
pSDEOp = null;
pWKSF = null;
pRasterWS = null;
pGeoDs = null;
}
本文来自CSDN博客,转载请标明出处:
向SDE库中写入栅格和矢量数据
说明:本类使用了上一篇文章中的打开sdeworkspace的类库。
本类是实现了向SDE中写入栅格和矢量数据,在SDE for Sql2005+ae9.3上测试通过。
使用时注意里面有一些向数据库中写入图层信息的内容
源代码如下:
/********************************************************************
filename: WriteToSDE.cs
created: 2009/12/20
author: 张烨
purpose: 向空间数据库写入矢量或者栅格数据
*********************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesRaster; using ESRI.ArcGIS.Geometry;
namespace RadioAnalysisGIS.DataToSDE {
///
/// 写入SDE
///
///
/// [张烨] 2009/12/20 创建
/// [张烨] 2009/12/25 编辑,向属性数据库中添加空间数据库更新说明
///
class WriteToSDE
{
#region 全局变量,构造函数
protected SDEConnectParas paras;
private FileWorkSpace pFileWorkSpace;
public WriteToSDE(SDEConnectParas para)
{
paras = para;
pFileWorkSpace = new FileWorkSpace();
}
#endregion
#region 初始化SDE连接参数
private SDEConnectPara InitPara()
{
paras.ReadFromFile();
string Server = "jiarui-dfe6951b";
string Instance = "5152";
string User = "gis";
string Pass = "gis";
string Database = "gisstations";
string Version = "SDE_DEFAULT";
paras.GetSDEParameters(out Server, out Instance, out User, out Pass, out
Database, out Version);
//从paras中获取SDE连接参数
SDEConnectPara para = new SDEConnectPara();
para.Server = Server;
para.Instance = Instance;
para.User = User;
para.Password = Pass;
para.Database = Database;
para.Version = Version;
return para;
}
#endregion
#region 连接到工作空间
public ConnectRasterWorkSpaceDef ConnToSdeRasterDef()
{
SDEConnectPara para = InitPara();
ConnectRasterWorkSpaceDef ConnRasterDef = new ConnectRasterWorkSpaceDef(para);
return ConnRasterDef;
}
public ConnectFeatureWorkSpaceDef ConnToSdeFeatureDef()
{
SDEConnectPara para = InitPara();
ConnectFeatureWorkSpaceDef ConnFeatureDef = new ConnectFeatureWorkSpaceDef(para);
return ConnFeatureDef;
}
#endregion
#region 读取空间矢量和栅格数据
public IRasterDataset GetRasterDataset(ConnectRasterWorkSpaceDef ConnDef,
string RasterName)
{
ConnectRasterWorkSpaceGet pWorkSpaceGet = new ConnectRasterWorkSpaceGet(ConnDef);
IRasterWorkspaceEx pWorkSpace = pWorkSpaceGet.GetSDEWorkspace();
if (pWorkSpace == null) return null;
try
{
return pWorkSpace.OpenRasterDataset(RasterName);
}
catch
{
return null;
}
}
public IFeatureClass GetFeatureClass(ConnectFeatureWorkSpaceDef ConnDef,
string FeatureName)
{
ConnectFeatureWorkSpaceGet pWorkSpaceGet = new
ConnectFeatureWorkSpaceGet(ConnDef);
IFeatureWorkspace pWorkSpace = pWorkSpaceGet.GetSDEWorkspace();
if (pWorkSpace == null) return null;
try
{
return pWorkSpace.OpenFeatureClass(FeatureName);
}
catch
{
return null;
}
}
#endregion
#region sde处理栅格
public bool WriteRasterToSDE(Guid MapGuid,ConnectRasterWorkSpaceDef ConnDef, string filePath)
{
ConnectRasterWorkSpaceGet pWorkSpaceGet = new
ConnectRasterWorkSpaceGet(ConnDef);
IRasterWorkspaceEx pWorkSpace = pWorkSpaceGet.GetSDEWorkspace();
//pWorkSpace.SaveAsRasterDataset("fasdf",pDataSet.CreateDefaultRaster(),null,"",null,null);
string LayerStoreName=CopyRasterToSSDE(filePath, pWorkSpace);
#region 写入数据库图层信息
WriteToDB wtd = new WriteToDB();
FilePath file = new FilePath(filePath);
wtd.WriteLayerInfo(file.GetFileName(), MapGuid, 1, LayerStoreName);
#endregion
return true;
}
public string CopyRasterToSSDE(string filePath, IRasterWorkspaceEx pWorkSpace)
{
FilePath file = new FilePath(filePath);
IRasterWorkspace2 pRW =
pFileWorkSpace.OpenRasterWorkspace(file.GetDir());
IRasterDataset pRds = pRW.OpenRasterDataset(file.GetFileName());
IRasterProps pRasterProps = (IRasterProps)pRds.CreateDefaultRaster();
IRasterStorageDef pRasterStorageDef = new RasterStorageDefClass();
IRasterDef pRasterDef = new RasterDefClass();
pRasterDef.SpatialReference = pRasterProps.SpatialReference;
IGeometryDef pGeoDef = new GeometryDefClass();
IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
pGeoDefEdit.AvgNumPoints_2 = 4;
pGeoDefEdit.GridCount_2 = 1;
pGeoDefEdit.set_GridSize(0, 1000);
pGeoDefEdit.SpatialReference_2 = pRasterProps.SpatialReference;
DateTime dt = DateTime.Now;
string timestr = "sde" + "_" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + "_" + dt.Hour + dt.Minute + dt.Second;
IRasterDataset pRasterDataset =
pWorkSpace.SaveAsRasterDataset(timestr, pRds.CreateDefaultRaster(), pRasterStorageDef, "", pRasterDef, pGeoDef);
return timestr;
}
public bool CreateRasterToSSDE(IRasterDataset pRDs, IRasterWorkspaceEx pWorkSpace)
{
IRasterProps pRasterProps = (IRasterProps)pRDs.CreateDefaultRaster();
IRasterStorageDef pRasterStorageDef = new RasterStorageDefClass();
pRasterStorageDef.CompressionType =
esriRasterCompressionType.esriRasterCompressionJPEG2000;
pRasterStorageDef.CompressionQuality = 50;
pRasterStorageDef.PyramidLevel = 2;
pRasterStorageDef.PyramidResampleType =
rstResamplingTypes.RSP_BilinearInterpolation;
pRasterStorageDef.TileHeight = 128;
pRasterStorageDef.TileWidth = 128;
IRasterDef pRasterDef = new RasterDefClass();
pRasterDef.Description = "rasterdataset";
pRasterDef.SpatialReference = pRasterProps.SpatialReference;
IGeometryDef pGeoDef = new GeometryDefClass();
IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPolygon;
pGeoDefEdit.AvgNumPoints_2 = 4;
pGeoDefEdit.GridCount_2 = 1;
pGeoDefEdit.set_GridSize(0, 1000);
pGeoDefEdit.SpatialReference_2 = pRasterProps.SpatialReference;
//使用CreateRasterDataset创建一个新层可以
IRasterDataset pRasterDataset = pWorkSpace.CreateRasterDataset("zzy", 3, rstPixelType.PT_UCHAR, pRasterStorageDef, "", pRasterDef, pGeoDef);
pRasterDataset = pRDs;
return true;
}
#endregion
#region sde处理feature
public bool AddFeatureToSDE(Guid MapGuid,ConnectFeatureWorkSpaceDef ConnDef, IFeatureClass pFC, string LayerName)
{
ConnectFeatureWorkSpaceGet pWorkSpaceGet = new
ConnectFeatureWorkSpaceGet(ConnDef);
IFeatureWorkspace pWorkSpace = pWorkSpaceGet.GetSDEWorkspace();
//pWorkSpace.SaveAsRasterDataset("fasdf",pDataSet.CreateDefaultRaster(),null,"",null,null);
string LayerStoreName=CopyFeatureToSSDE(pFC, pWorkSpace,LayerName);
#region 写入数据库图层信息
WriteToDB wtd = new WriteToDB();
wtd.WriteLayerInfo(LayerName, MapGuid, 0, LayerStoreName);
#endregion
return true;
}
public bool AddFeatureToSDE(ConnectFeatureWorkSpaceDef ConnDef, string filePath)
{
try
{
FilePath file = new FilePath(filePath);
IFeatureWorkspace pFW =
pFileWorkSpace.OpenFeatureWorkspace(file.GetDir());
IFeatureClass pFC = pFW.OpenFeatureClass(file.GetFileName());
ConnectFeatureWorkSpaceGet pWorkSpaceGet = new ConnectFeatureWorkSpaceGet(ConnDef);
IFeatureWorkspace pWorkSpace = pWorkSpaceGet.GetSDEWorkspace();
CopyFeatureToSSDE(pFC, pWorkSpace,file.GetFileName());
}
catch
{
return false;
}
return true;
}
public string CopyFeatureToSSDE(IFeatureClass pFC, IFeatureWorkspace pWorkSpace, string LayerName)
{
IDataset pDataset = pFC as IDataset;
//IFeatureDataset pFD =
pWorkSpace.OpenFeatureDataset("test.DBO.ContourDataSet");
DateTime dt = DateTime.Now;
string timestr = "contour" + dt.Year.ToString() + dt.Month.ToString() + dt.Day.ToString() + "_" + dt.Hour + dt.Minute + dt.Second;
IFeatureDataConverter_ConvertFeatureClass(pDataset.Workspace as IWorkspace, pWorkSpace as IWorkspace, LayerName, timestr);
return timestr;
}
public void IFeatureDataConverter_ConvertFeatureClass(IWorkspace sourceWorkspace, IWorkspace targetWorkspace, string nameOfSourceFeatureClass, string nameOfTargetFeatureClass)
{
//create source workspace name
IDataset sourceWorkspaceDataset = (IDataset)sourceWorkspace;
IWorkspaceName sourceWorkspaceName =
(IWorkspaceName)sourceWorkspaceDataset.FullName;
//create source dataset name
IFeatureClassName sourceFeatureClassName = new FeatureClassNameClass();
IDatasetName sourceDatasetName =
(IDatasetName)sourceFeatureClassName;
sourceDatasetName.WorkspaceName = sourceWorkspaceName;
sourceDatasetName.Name = nameOfSourceFeatureClass;
//create target workspace name
IDataset targetWorkspaceDataset = (IDataset)targetWorkspace;
IWorkspaceName targetWorkspaceName =
(IWorkspaceName)targetWorkspaceDataset.FullName;
//create target dataset name
IFeatureClassName targetFeatureClassName = new FeatureClassNameClass();
IDatasetName targetDatasetName =
(IDatasetName)targetFeatureClassName;
targetDatasetName.WorkspaceName = targetWorkspaceName;
targetDatasetName.Name = nameOfTargetFeatureClass;
//Open input Featureclass to get field definitions.
ESRI.ArcGIS.esriSystem.IName sourceName =
(ESRI.ArcGIS.esriSystem.IName)sourceFeatureClassName;
IFeatureClass sourceFeatureClass = (IFeatureClass)sourceName.Open();
//Validate the field names because you are converting between different workspace types.
IFieldChecker fieldChecker = new FieldCheckerClass();
IFields targetFeatureClassFields;
IFields sourceFeatureClassFields = sourceFeatureClass.Fields;
IEnumFieldError enumFieldError;
// Most importantly set the input and validate workspaces!
fieldChecker.InputWorkspace = sourceWorkspace;
fieldChecker.ValidateWorkspace = targetWorkspace;
fieldChecker.Validate(sourceFeatureClassFields, out enumFieldError, out targetFeatureClassFields);
// Loop through the output fields to find the geomerty field
IField geometryField;
for (int i = 0; i < targetFeatureClassFields.FieldCount; i++)
{
if (targetFeatureClassFields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry)
{
geometryField = targetFeatureClassFields.get_Field(i);
// Get the geometry field's geometry defenition
IGeometryDef geometryDef = geometryField.GeometryDef;
//Give the geometry definition a spatial index grid count and grid size
IGeometryDefEdit targetFCGeoDefEdit =
(IGeometryDefEdit)geometryDef;
targetFCGeoDefEdit.GridCount_2 = 1;
targetFCGeoDefEdit.set_GridSize(0, 0);
//Allow ArcGIS to determine a valid grid size for the data loaded
targetFCGeoDefEdit.SpatialReference_2 =
geometryField.GeometryDef.SpatialReference;
// we want to convert all of the features
IQueryFilter queryFilter = new QueryFilterClass();
queryFilter.WhereClause = "";
// Load the feature class
IFeatureDataConverter fctofc = new
FeatureDataConverterClass();
IEnumInvalidObject enumErrors =
fctofc.ConvertFeatureClass(sourceFeatureClassName, queryFilter, null, targetFeatureClassName, geometryDef, targetFeatureClassFields, "", 1000, 0);
break;
}
}
}
#endregion
}
}
Public Function ImportSDERLayer(ByVal iFilePath As String, ByVal iRLayerName As String, ByVal iKeyWord As String, ByVal iRasterStorageInfo As RasterStorageInfo) As Boolean
Dim i As Integer
Dim iWorkspaceFactory As ESRI.ArcGIS.Geodatabase.IWorkspaceFactory
Dim iRasterWorkspace As ESRI.ArcGIS.DataSourcesRaster.IRasterWorkspace
Dim iGeoDataset As ESRI.ArcGIS.Geodatabase.IGeoDataset
Dim iRaster As ESRI.ArcGIS.Geodatabase.IRaster
Dim iRasterWorkspaceEx As ESRI.ArcGIS.Geodatabase.IRasterWorkspaceEx
Dim iSDEWorkspaceFactory As New
ESRI.ArcGIS.DataSourcesGDB.SdeWorkspaceFactory
Dim iSpatialReference As ESRI.ArcGIS.Geometry.ISpatialReference
Dim iRasterDataset As ESRI.ArcGIS.Geodatabase.IRasterDataset
Dim iRasterStorageDef As ESRI.ArcGIS.Geodatabase.IRasterStorageDef
Dim iRasterDef As ESRI.ArcGIS.Geodatabase.IRasterDef
Dim iGeometryDef As ESRI.ArcGIS.Geodatabase.IGeometryDef
Dim iGeometryDefEdit As ESRI.ArcGIS.Geodatabase.IGeometryDefEdit
Dim iRasterPyramid2 As ESRI.ArcGIS.DataSourcesRaster.IRasterPyramid2
Dim iRasterStatistics As ESRI.ArcGIS.DataSourcesRaster.IRasterStatistics
Dim iRasterBandCollection As
ESRI.ArcGIS.DataSourcesRaster.IRasterBandCollection
On Error GoTo CheckErr
If CheckUserPower(CurrentUser.UserID, iRLayerName, "RL", EnumUserPower.CanImport) = True Then
If CheckSDERLayerExist(iRLayerName) = False Then
'打开源矢量图层
iWorkspaceFactory = New
ESRI.ArcGIS.DataSourcesRaster.RasterWorkspaceFactory
iRasterWorkspace =
iWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(iFilePath), 0)
Select Case UCase(System.IO.Path.GetExtension(iFilePath))
Case ".BMP", ".JPG", ".GIF", ".TIF", ".IMG"
iRaster =
iRasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileName(iFilePath)).CreateDefaultRaster
Case ".AUX"
iRaster =
iRasterWorkspace.OpenRasterDataset(System.IO.Path.GetFileNameWithoutExtension(iFilePath)).CreateDefaultRaster
End Select
iGeoDataset = iRaster
If iGeoDataset.SpatialReference Is Nothing Then
iSpatialReference = New
ESRI.ArcGIS.Geometry.UnknownCoordinateSystem
Else
iSpatialReference = iGeoDataset.SpatialReference
End If
'设置IRasterStorageDef
iRasterStorageDef = iRasterStorageInfo.RasterStorageDef
'设置IRasterDef
iRasterDef = New ESRI.ArcGIS.Geodatabase.RasterDef
iRasterDef.Description = "RasterDataset"
iRasterDef.SpatialReference = iSpatialReference
'设置IGeometryDef
iGeometryDef = New ESRI.ArcGIS.Geodatabase.GeometryDef
iGeometryDefEdit = iGeometryDef
iGeometryDefEdit.AvgNumPoints_2 = 4
iGeometryDefEdit.GeometryType_2 =
ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon
iGeometryDefEdit.GridCount_2 = 1
iGeometryDefEdit.GridSize_2(0) = 1000
iGeometryDefEdit.SpatialReference_2 = iSpatialReference
'设置KeyWord
If Trim(iKeyWord) = "" Then
iKeyWord = "DEFAULTS"
End If
'导入到SDE中
If iRasterStorageInfo.BulidPyramid = False Then
iRasterStorageDef.PyramidLevel = 0 '当PyramidLevel=0时就不会
创建金字塔
End If
iRasterWorkspaceEx = iSDEWorkspaceFactory.Open(SDE_PropertySet,
0)
iRasterDataset =
iRasterWorkspaceEx.SaveAsRasterDataset(iRLayerName, iRaster, iRasterStorageDef,
iKeyWord, iRasterDef, iGeometryDef)
'创建金字塔(此过程可以不用)
If iRasterStorageInfo.BulidPyramid = True Then
iRasterPyramid2 = iRasterDataset
If iRasterPyramid2.Present = False Then
iRasterPyramid2.BuildPyramid(iRasterStorageInfo.RasterStorageDef.PyramidLevel, iRasterStorageInfo.RasterStorageDef.PyramidResampleType)
End If
End If
'统计栅格图层
If iRasterStorageInfo.ComputeStatistics = True Then
iRasterStatistics = iRasterStorageInfo.RasterStatisticDef
iRasterBandCollection = iRasterDataset
For i = 0 To iRasterBandCollection.Count - 1
iRasterStatistics.RasterBand = iRasterBandCollection.Item(i)
iRasterStatistics.Recalculate()
Next
End If
'写日志
Call AddSystemLog(CurrentUser.UserID, My.Computer.Name, "导入栅格
图层", "空间数据库操作")
Return True
Exit Function
Else
MessageBox.Show("目标栅格图层已存在,无法导入~", "消息",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
Exit Function
End If
Else
MessageBox.Show("当前用户无权导入该栅格图层~", "消息",
MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False
Exit Function
End If
Exit Function
CheckErr:
MessageBox.Show(Err.Number & ":" & Err.Description, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
Exit Function
End Function
复制代码其中Public Structure RasterStorageInfo
Dim RasterStorageDef As ESRI.ArcGIS.Geodatabase.IRasterStorageDef
Dim RasterStatisticDef As ESRI.ArcGIS.DataSourcesRaster.IRasterStatistics
Dim BulidPyramid As Boolean
Dim ComputeStatistics As Boolean
End Structure
复制代码
本文档为【我用.net编写的栅格数据入库代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。