阅读:2450回复:6
关于土石方量算的AO
<P>最近在做一个关于土石方量算的AO,看了帮助文档,可以通过调用cutfill方法来实现。我用C#编了一下,编译没有错误,可是运行后点击鼠标就是没有东西,不知道是什么原因,如果有做过的或者是哪位会的话帮我看看下面的代码,告诉我问题出在哪里。
public IGeoDataset CutFill() { ISurfaceOp pSurfaceOp=new RasterSurfaceOpClass(); object zFactor=1; IGeoDataset pbeforeGeoDataset=(IGeoDataset)OpenRasterDataset ("d:\\","elevation.aux"); IGeoDataset pafterGeoDataset=(IGeoDataset)OpenRasterDataset("d:\\","hillshade.aux"); IGeoDataset pOutputRaster=pSurfaceOp.CutFill(pbeforeGeoDataset,pafterGeoDataset,ref zFactor) ; return pOutputRaster; } </P> <P>public IRasterDataset OpenRasterDataset(string directoryName, string fileName) { //Open the raster dataset with the given name. //directoryName is the directory where the file resides //fileName is the filename to be opened //Open the workspace IWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();</P> <P>// define the directory as a raster workspace IRasterWorkspace rasterWorkspace = workspaceFactory.OpenFromFile(directoryName, 0) as IRasterWorkspace;</P> <P>//Open the raster dataset IRasterDataset rasterDataset = null; rasterDataset = rasterWorkspace.OpenRasterDataset(fileName);</P> <P>// Return raster dataset return rasterDataset; }</P> <P>private void button2_Click(object sender, System.EventArgs e) { CutFill();</P> <P> }</P> |
|
|
1楼#
发布于:2005-04-27 10:00
<img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
2楼#
发布于:2005-04-27 10:00
<img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em03.gif" />
|
|
|
3楼#
发布于:2005-04-27 10:01
<img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em03.gif" />
|
|
|
4楼#
发布于:2005-04-27 20:07
今天又做了一些完善,就是把pOutputRaster转成RasterLayer在MAP里显示,然后调用Attribuate Table显示最后填挖的体积。不过在使用.ToRasterDataset()把IGeoDataset转成IRasterDataset的时候出了点故障,编译没有错误,调试出错。不知道哪位知道怎么样把GeoDataset转成RasterDataset?
|
|
|
5楼#
发布于:2005-04-27 20:43
<P>最好是把调试的错误写出来,那样大家好看些</P><P>数据的转换在arctoolbox里有工具,函数在帮助里也可以找到的</P><P>现在电脑上没有软件,帮不上忙,改天上来看</P>
|
|
|
6楼#
发布于:2005-04-28 11:37
<P>在启动的时候出现这样的错误:</P><P>未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在 WindowsApplication1.exe 中。</P><P>其他信息: 未指定的错误</P><P>是在pOutput=pConversionOp.ToRasterDataset( pOutputRaster,"GRID", pWorkspace,"pOutput1");这个语句上。与此相关的语句是</P><P> IWorkspaceFactory pWksF=new RasterWorkspaceFactoryClass();
IWorkspace pWorkspace=pWksF.OpenFromFile(pathToWorkspace,0); IConversionOp pConversionOp=new RasterConversionOpClass(); IRasterDataset pOutput=new RasterDatasetClass(); pOutput=pConversionOp.ToRasterDataset( pOutputRaster,"GRID", pWorkspace,"pOutput1"); 从昨天到现在一直调都是这个错误,用逐语句调也就调到这里出错,我实在查不出来了。希望大家能帮我看看</P> |
|
|