阅读:1678回复:2
【求助】点图层生成表面,总不成功
<P>在用插值方法生成表面时总是得不到要输出的结果,代码如下(delphi),其中蓝色变量为输出变量,但一直为空,请高手帮忙?</P>
<P>procedure TfrmMain.Button3Click(Sender: TObject);<br>var<br> pWFact: IWorkspaceFactory;<br> pWks: IWorkspace;<br> pFWks: IFeatureWorkspace;<br> pInFCls: IFeatureClass;<br> pFClsDes: IFeatureClassDescriptor;<br> pRaster: IRaster;<br> pRLayer: IRasterLayer;<br> pLayer: ILayer;<br> pInGeoDataset, pOutGeoDataset: IGeoDataset;<br> pRadius: IRasterRadius;<br> pInterpolatOp: IInterpolationOp;<br> pEnv: IRasterAnalysisEnvironment;<br> pPointNum: integer;<br> pMaxDistance, pBarrier, CellSize: OleVariant;</P> <P> pFieldName, pFieldName1: widestring;<br> i: integer;<br>begin<br> pPointNum := 12;<br> pMaxDistance := 0;<br> CellSize := 3;<br> pFieldName := 'GJZ';</P> <P> pWFact := CoShapeFileWorkspaceFactory.Create as IWorkspaceFactory;<br> pWFact.OpenFromFile('D:\Projects\ZLS\temp', 0, pWks);<br> pFWks := pWks as IFeatureWorkspace;<br> pFWks.OpenFeatureClass('BasicPoint.shp', pInFCls);</P> <P> //set fieldname<br> pFClsDes := CoFeatureClassDescriptor.create as IFeatureClassDescriptor;<br> pFClsDes.Create(pInFCls, nil, pFieldName);<br> pInGeoDataset := pFClsDes as IGeoDataset;<br> pFClsDes.Get_FieldName(pFieldName1);</P> <P> //Set cell size for output raster.<br> pInterpolatOp := CoRasterInterpolationOp.Create as IInterpolationOp;<br> pEnv := pInterpolatOp as IRasterAnalysisEnvironment;<br> pEnv.SetCellSize(esriRasterEnvValue, CellSize);</P> <P> //Set Radius<br> pRadius := CoRasterRadius.Create as IRasterRadius;<br> pRadius.SetVariable(pPointNum, pMaxDistance);</P> <P> //Create GeoDataset for Raster<br><STRONG><FONT color=#f70968> pInterpolatop.Krige(pInGeoDataset, esriGeoAnalysisCircularSemiVariogram, pRadius, true, pBarrier, <FONT color=#0938f7>pOutGeoDataset</FONT>);</FONT></STRONG></P> <P><STRONG><FONT color=#f70968> //Add the Raster to map<br> pRaster := <FONT color=#1111ee>pOutGeoDataset</FONT> as IRaster; </FONT></STRONG><br> pRLayer := CoRasterLayer.Create as IRasterLayer;<br> pRLayer.CreateFromRaster(pRaster);<br> pLayer := pRLayer as ILayer;<br> pMap.AddLayer(pLayer, 0);</P> <P>end;</P> [此贴子已经被作者于2006-8-23 10:59:53编辑过]
|
|
1楼#
发布于:2006-08-23 12:44
<P>下面是转换后的VB代码,错误内容是“there are no spatial analyst or 3Danalyst licenses currently available” ,请问怎样获得这两个扩展模块儿的授权?急。。。 </P>
<P>Dim pWFact As IWorkspaceFactory<br> Dim pWks As IWorkspace<br> Dim pFWks As IFeatureWorkspace<br> Dim pInFCls As IFeatureClass<br> Dim pFClsDes As IFeatureClassDescriptor<br> Dim pRaster As IRaster<br> Dim pRLayer As IRasterLayer<br> Dim pInGeoDataset, pOutGeoDataset As IGeoDataset<br> Dim pRadius As IRasterRadius<br> Dim pInterpolatOp As IInterpolationOp<br> Dim pEnv As IRasterAnalysisEnvironment<br> Dim pPointNum As Integer<br> Dim pMaxDistance, pBarrier, CellSize As Variant<br> <br> Dim pFieldName As String<br> <br> pPointNum = 12<br> pMaxDistance = 0<br> CellSize = 3<br> pFieldName = "GJZ"<br> <br> 'Open shape file<br> Set pWFact = New ShapefileWorkspaceFactory<br> Set pWks = pWFact.OpenFromFile("D:\Projects\ZLS_VB\temp", 0)<br> Set pFWks = pWks<br> Set pInFCls = pFWks.OpenFeatureClass("BasicPoint")<br> 'Set filed Name<br> Set pFClsDes = New FeatureClassDescriptor<br> pFClsDes.Create pInFCls, Nothing, pFieldName<br> 'Create RasterInterpolationOp object<br> Set pInterpolatOp = New RasterInterpolationOp<br> 'Set cell size for output raster<br> Set pEnv = pInterpolatOp<br> pEnv.SetCellSize esriRasterEnvValue, CellSize<br> 'Create raset radius using variable distance<br> Set pRadius = New RasterRadius<br> pRadius.SetVariable 12<br> <br><FONT color=#f70968> Set pRaster = pInterpolatOp.Krige(pFClsDes, esriGeoAnalysisCircularSemiVariogram, pRadius, True)<br></FONT> Set pRLayer = New RasterLayer<br> pRLayer.CreateFromRaster pRaster<br> <br> m_Map.AddLayer prlaeyr, 0</P> [此贴子已经被作者于2006-8-23 12:45:13编辑过]
|
|
2楼#
发布于:2006-08-24 09:13
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em05.gif" /><img src="images/post/smile/dvbbs/em06.gif" /><img src="images/post/smile/dvbbs/em07.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
|
|
|