IT人
相关图书

关于ArcEngine开发

所属分类:企业开发 地理信息系统
-----------------------------------------

想实现融合功能,通过接口IBasicGeoprocessor实现

esriCarto::IBasicGeoprocessorPtr spBasPrco(__uuidof(esriCarto::BasicGeoprocessor));;

spBasPrco->Dissolve(spInputTable,FALSE,(_bstr_t)("*"),_bstr_t(""),spOutDatasetName,&spResultTale);
参数怎样描述

函数Dissolve如何调用实现,谢谢高手指点

----------------------------------------------------------------------

没做过,不过替你顶了。可以看下例子吧。

--------------------------------------------------------

参考:(http://hi.baidu.com/earthworm)

调用ArcToolBox中的dissolve函数2007-02-07 23:12Option Explicit

Sub Dissolve()
  
   Dim pDoc As IMxDocument
   Set pDoc = ThisDocument
  
   Dim pmap As IMap
   Set pmap = pDoc.FocusMap
  
   Dim player As ILayer
   Dim pInputFeatLayer As IFeatureLayer
   Dim intCount As Integer
  
   '判断工程中是否有图层名为"dissolve"的layer
   For intCount = 0 To pmap.LayerCount - 1
     Set player = pmap.Layer(intCount)
   If TypeOf player Is IFeatureLayer Then
     If player.Name = "dissolve" Then
         Set pInputFeatLayer = player
         Exit For
     End If
   End If
   Next
  
   If pInputFeatLayer Is Nothing Then
     MsgBox "The dissove layer was not found"
     Exit Sub
   End If
  
   'get input table
   Dim pInputTable As itable
   Set pInputTable = pInputFeatLayer
  
   If pInputTable Is Nothing Then
     MsgBox "Table QI failed"
     Exit Sub
   End If
  
   'make sure there is a field call 'inte'in the input layer
   If pInputTable.FindField("inte") = -1 Then
     MsgBox ("there must be a field named inte in dissolve")
     Exit Sub
   End If
  
   Dim pInputFeatClass As IFeatureClass
   Set pInputFeatClass = pInputFeatLayer.FeatureClass
  
   Dim pFeatClassName As IFeatureClassName
   Set pFeatClassName = New FeatureClassName
  
   With pFeatClassName
     .FeatureType = esriFTSimple
     .ShapeFieldName = "shape"
     .ShapeType = pInputFeatClass.ShapeType
   End With
  
  
' Set up the output location
    Dim pNewWSName As IWorkspaceName
    Set pNewWSName = New WorkspaceName
    ' shapefile flavor will work just fine
    pNewWSName.WorkspaceFactoryProgID = "esriCore.ShapefileWorkspaceFactory.1"
    pNewWSName.PathName = "E:\work\20060907-phd\070201\"

'设置输出文件
   Dim pOutTabName As ITableName
   Set pOutTabName = New TableName
   Dim pDatasetName As IDatasetName
   Set pDatasetName = pOutTabName
   pDatasetName.Name = "dissolve_out"
   Set pDatasetName.WorkspaceName = pNewWSName
  

   '调用dissolve功能
   Dim pGeoProc As IBasicGeoprocessor
   Set pGeoProc = New BasicGeoprocessor
   Dim pOutPutTable As itable
   Set pOutPutTable = pGeoProc.Dissolve(pInputTable, False, "type", "Dissolve.Shape", pDatasetName)
  
   Dim pOutputFeatClass As IFeatureClass
   Set pOutputFeatClass = pOutPutTable
  
   Dim pOutputFeatLayer As IFeatureLayer
   Set pOutputFeatLayer = New FeatureLayer
  
   '加载输出文件到 table of content中
   Set pOutputFeatLayer.FeatureClass = pOutputFeatClass
   pOutputFeatLayer.Name = pOutputFeatClass.AliasName
   pmap.AddLayer pOutputFeatLayer
  

End Sub

 


--------------------------------------------------------

谢谢 huo789(四火) ,不过我也做出来了,呵呵,还是很感谢

--------------------------------------------------------

为什么不能结帖啊 ?
相关问题
    Copyright ◎ 1998 - 2007 编程资料网 All Rights Reserved