cftao2008
路人甲
路人甲
  • 注册日期2005-03-09
  • 发帖数141
  • QQ
  • 铜币568枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1496回复:2

【求助】点图层生成表面,总不成功

楼主#
更多 发布于:2006-08-23 10:56
<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编辑过]
喜欢0 评分0
cftao2008
路人甲
路人甲
  • 注册日期2005-03-09
  • 发帖数141
  • QQ
  • 铜币568枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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编辑过]
举报 回复(0) 喜欢(0)     评分
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
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" />
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
游客

返回顶部