///<summary> ///创建指定投影的数据集,只创建Tif格式的数据集 ///</summary> /// <param name="pSrcDS">源数据集</param> /// <param name="pszSrcWKT">源数据集坐标(WKT)描述,为NULL ///将从pSrcDS读出相应信息</param> /// <param name="pszDstWKT">目标数据集坐标(WKT)描述</param> /// <param name="pszDstFilePath">目标数据集所在位置,为NULL创建虚拟数据集</param> /// <param name="iWidth">目标数据集宽度,为0时用源图像对应的宽度</param> /// <param name="iHeight">目标数据集高度,为0时用源图像对应的高度</param> /// <param name="pAffine">仿射变换参数,为NULL时用源图像对应的参数,必须与width跟hieght ///相适应</param> public static EarthView.World.Spatial2D.Raster.RasterDataSet CreateDatasetForProj(EarthView.World.Spatial2D.Raster.RasterDataSet pSrcDS, byte[] pszSrcWKT, byte[] pszDstWKT, byte[] pszDstFilePath, int iWidth, int iHeight, EarthView.World.Spatial2D.Raster.AffineTransform pAffine) { IntPtr __ptr = EarthView_World_Spatial2D_Raster_CReprojectAlg_createDatasetForProj_CRasterDataSet_CRasterDataSet_ev_char_ev_char_ev_char_ev_int32_ev_int32_CAffineTransform(object.Equals(pSrcDS, null) ? IntPtr.Zero : pSrcDS.NativeObject, pszSrcWKT, pszDstWKT, pszDstFilePath, iWidth, iHeight, object.Equals(pAffine, null) ? IntPtr.Zero : pAffine.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial2D.Raster.RasterDataSet csObj = new EarthView.World.Spatial2D.Raster.RasterDataSet(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CRasterDataSet"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial2D.Raster.RasterDataSet; csObj.BindNativeObject(__ptr, "CRasterDataSet"); } return(csObj); }
///<summary> ///复制一个数据集 ///</summary> /// <param name="pszCopypath">目标数据集路径,为""创建内存数据集</param> /// <param name="pSrcDataset">源数据集对象</param> /// <param name="erasterType">创建相应对象选项,如JPEG,Tif,img Png等</param> /// <param name="pfnProgress">进度函数</param> /// <param name="pProssiInfo">进度信息类</param> ///<returns>返回一个数据集对象,要显示调用close函数才能将数据集刷到硬盘</returns> public static EarthView.World.Spatial2D.Raster.RasterDataSet CreateCopy(string pszCopypath, EarthView.World.Spatial2D.Raster.RasterDataSet pSrcDataset, EarthView.World.Spatial2D.Raster.EVDATASETFORMAT erasterType, EarthView.World.Spatial2D.Raster.ProgressInfo pProssiInfo) { IntPtr __ptr = EarthView_World_Spatial2D_Raster_CRasterFileOperator_createCopy_CRasterDataSet_EVString_CRasterDataSet_EVDataSetFormat_CProgressInfo(pszCopypath, object.Equals(pSrcDataset, null) ? IntPtr.Zero : pSrcDataset.NativeObject, erasterType, object.Equals(pProssiInfo, null) ? IntPtr.Zero : pProssiInfo.NativeObject); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial2D.Raster.RasterDataSet csObj = new EarthView.World.Spatial2D.Raster.RasterDataSet(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CRasterDataSet"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial2D.Raster.RasterDataSet; csObj.BindNativeObject(__ptr, "CRasterDataSet"); } return(csObj); }
///<summary> ///根据给定参数创建相应的栅格数据集 ///</summary> /// <param name="pszpath">栅格数据集的路径,可以为空字符串,当为空时创建虚拟对象</param> /// <param name="iWidth">栅格数据集的宽度</param> /// <param name="iHeight">栅格数据集的高度</param> /// <param name="ibandCount">栅格数据集之波段数</param> /// <param name="edatatype">数据类型</param> /// <param name="erasterType">创建相应对象选项,如Tif,img等(PNG\JPG CrateCopy)</param> /// <returns>栅格数据集指针<returns> public static EarthView.World.Spatial2D.Raster.RasterDataSet Create(string pszpath, int iWidth, int iHeight, int ibandCount, EarthView.World.Spatial.GeoDataset.EVRASTERDATATYPE edatatype, EarthView.World.Spatial2D.Raster.EVDATASETFORMAT erasterType) { IntPtr __ptr = EarthView_World_Spatial2D_Raster_CRasterFileOperator_create_CRasterDataSet_EVString_ev_int32_ev_int32_ev_int32_EVRasterDataType_EVDataSetFormat(pszpath, iWidth, iHeight, ibandCount, edatatype, erasterType); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial2D.Raster.RasterDataSet csObj = new EarthView.World.Spatial2D.Raster.RasterDataSet(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CRasterDataSet"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial2D.Raster.RasterDataSet; csObj.BindNativeObject(__ptr, "CRasterDataSet"); } return(csObj); }
///<summary> ///根据给定参数创建相应的栅格数据集 ///</summary> /// <param name="pFileBuffer">数据集的二进制流</param> /// <param name="erasterType">创建相应对象选项,如JPEG,Tif,img Png等</param> /// <returns>栅格数据集指针<returns> public static EarthView.World.Spatial2D.Raster.RasterDataSet CreateFormStream(byte[] pFileBuffer, ulong idataLenth, EarthView.World.Spatial2D.Raster.EVDATASETFORMAT erasterType) { IntPtr __ptr = EarthView_World_Spatial2D_Raster_CRasterFileOperator_createFormStream_CRasterDataSet_ev_uchar_ev_uint64_EVDataSetFormat(pFileBuffer, idataLenth, erasterType); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial2D.Raster.RasterDataSet csObj = new EarthView.World.Spatial2D.Raster.RasterDataSet(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CRasterDataSet"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial2D.Raster.RasterDataSet; csObj.BindNativeObject(__ptr, "CRasterDataSet"); } return(csObj); }
///<summary> ///根据给定路径打开一个数据集 ///</summary> /// <param name="pszFullpathName">栅格数据的全路径</param> /// <param name="eAccess">栅格数据集的打开权限</param> /// <returns>栅格数据集指针<returns> public static EarthView.World.Spatial2D.Raster.RasterDataSet Open(string pszFullpathName, EarthView.World.Spatial2D.Raster.EVACCESS eAccess) { IntPtr __ptr = EarthView_World_Spatial2D_Raster_CRasterFileOperator_open_CRasterDataSet_EVString_EVAccess(pszFullpathName, eAccess); if (__ptr == IntPtr.Zero) { return(null); } EarthView.World.Spatial2D.Raster.RasterDataSet csObj = new EarthView.World.Spatial2D.Raster.RasterDataSet(CreatedWhenConstruct.CWC_NotToCreate); csObj.BindNativeObject(__ptr, "CRasterDataSet"); IClassFactory csObjClassFactory = GlobalClassFactoryMap.Get(csObj.GetCppInstanceTypeName()); if (csObjClassFactory != null) { csObj.Delegate = true; csObj = csObjClassFactory.Create() as EarthView.World.Spatial2D.Raster.RasterDataSet; csObj.BindNativeObject(__ptr, "CRasterDataSet"); } return(csObj); }