zoukankan      html  css  js  c++  java
  • arcmap vba 生成3维侧棱 以及 createfeature与createfeaturebuffer的区别

    Sub huaxian()
    Dim pMxDoc As IMxDocument
    Set pMxDoc = Application.Document

    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap

    Dim pActiveView As IActiveView
    Set pActiveView = pMxDoc.FocusMap

    Dim pFeatureClassOne As IFeatureClass
    Dim pFLayerOne As IFeatureLayer

    Dim pFeatureClassTwo As IFeatureClass
    Dim pFLayerTwo As IFeatureLayer

    Dim pFeatureClassNew As IFeatureClass
    Dim pFLayerNew As IFeatureLayer

    Set pFLayerOne = pMap.Layer(0)
    Set pFLayerTwo = pMap.Layer(1)
    Set pFLayerNew = pMap.Layer(2)

    Set pFeatureClassOne = pFLayerOne.FeatureClass
    Set pFeatureClassTwo = pFLayerTwo.FeatureClass
    Set pFeatureClassNew = pFLayerNew.FeatureClass

    Dim pFeatureCursorOne As IFeatureCursor
    Dim pFeatureCursorTwo As IFeatureCursor

    Set pFeatureCursorOne = pFeatureClassOne.Search(Nothing, True)
    Set pFeatureCursorTwo = pFeatureClassTwo.Search(Nothing, True)

    Dim pFeatureOne As IFeature
    Dim pFeatureTwo As IFeature

    Set pFeatureOne = pFeatureCursorOne.NextFeature
    Set pFeatureTwo = pFeatureCursorTwo.NextFeature


    Dim pPolygonOne As IPolygon
    Dim pPolygonTwo As IPolygon
    Dim pOnePoints As IPointCollection
    Dim pTwoPoints As IPointCollection
    Dim i As Integer

    Dim pFromPoint As IPoint
    Dim pToPoint As IPoint
    Dim pPolyline As IPolyline
    Dim polylinePoints As IPointCollection
    Dim pFeatureNew As IFeature

     'create a feature cursor and feature buffer interface
     Dim pFeatCur As IFeatureCursor
     Dim pFeatBuf As IFeatureBuffer
     
     'open the feature cursor and feature buffer
     Set pFeatCur = pFeatureClassNew.Insert(True)
     Set pFeatBuf = pFeatureClassNew.CreateFeatureBuffer

     Dim q As Long

     
    While Not pFeatureOne Is Nothing And Not pFeatureTwo Is Nothing
       Set pPolygonOne = pFeatureOne.Shape
       Set pPolygonTwo = pFeatureTwo.Shape
       Set pOnePoints = pPolygonOne
       Set pTwoPoints = pPolygonTwo
     
     For i = 0 To pOnePoints.PointCount - 1
      
       Set pFromPoint = pOnePoints.Point(i)
       Set pToPoint = pTwoPoints.Point(i)
       Set pPolyline = New Polyline
       Set polylinePoints = pPolyline
      
       polylinePoints.AddPoint pFromPoint
       polylinePoints.AddPoint pToPoint
      
       Set pFeatureNew = pFeatBuf
       Set pFeatureNew.Shape = pPolyline
     


       q = pFeatCur.InsertFeature(pFeatBuf)
      
       Next i
      
       Set pFeatureOne = pFeatureCursorOne.NextFeature
       Set pFeatureTwo = pFeatureCursorTwo.NextFeature
    Wend

    MsgBox "done!"
    End Sub

    ——————————————————————————————————————————————————————————————————————

    Sub huaxian()

    Dim pMxDoc As IMxDocument
    Set pMxDoc = Application.Document

    Dim pMap As IMap
    Set pMap = pMxDoc.FocusMap

    Dim pActiveView As IActiveView
    Set pActiveView = pMxDoc.FocusMap

    Dim pFeatureClassOne As IFeatureClass
    Dim pFLayerOne As IFeatureLayer

    Dim pFeatureClassTwo As IFeatureClass
    Dim pFLayerTwo As IFeatureLayer

    Dim pFeatureClassNew As IFeatureClass
    Dim pFLayerNew As IFeatureLayer

    Set pFLayerOne = pMap.Layer(0)
    Set pFLayerTwo = pMap.Layer(1)
    Set pFLayerNew = pMap.Layer(2)

    Set pFeatureClassOne = pFLayerOne.FeatureClass
    Set pFeatureClassTwo = pFLayerTwo.FeatureClass
    Set pFeatureClassNew = pFLayerNew.FeatureClass

    Dim pFeatureCursorOne As IFeatureCursor
    Dim pFeatureCursorTwo As IFeatureCursor

    Set pFeatureCursorOne = pFeatureClassOne.Search(Nothing, True)
    Set pFeatureCursorTwo = pFeatureClassTwo.Search(Nothing, True)

    Dim pFeatureOne As IFeature
    Dim pFeatureTwo As IFeature

    Set pFeatureOne = pFeatureCursorOne.NextFeature
    Set pFeatureTwo = pFeatureCursorTwo.NextFeature


    Dim pPolygonOne As IPolygon
    Dim pPolygonTwo As IPolygon
    Dim pOnePoints As IPointCollection
    Dim pTwoPoints As IPointCollection
    Dim i As Integer

    Dim pFromPoint As IPoint
    Dim pToPoint As IPoint
    Dim pPolyline As IPolyline
    Dim polylinePoints As IPointCollection
    Dim pFeatureNew As IFeature


     
    While Not pFeatureOne Is Nothing and Not pFeatureTwo Is Nothing
       Set pPolygonOne = pFeatureOne.Shape
       Set pPolygonTwo = pFeatureTwo.Shape
       Set pOnePoints = pPolygonOne
       Set pTwoPoints = pPolygonTwo
     
     For i = 0 To pOnePoints.PointCount - 1
      
       Set pFromPoint = pOnePoints.Point(i)
       Set pToPoint = pTwoPoints.Point(i)
       Set pPolyline = New Polyline
       Set polylinePoints = pPolyline
      
       polylinePoints.AddPoint pFromPoint
       polylinePoints.AddPoint pToPoint
      
       Set pFeatureNew = pFeatureClassNew.CreateFeature
       Set pFeatureNew.Shape = pPolyline
       pFeatureNew.Store
      
      
      
      
       Next i
      
       Set pFeatureOne = pFeatureCursorOne.NextFeature
       Set pFeatureTwo = pFeatureCursorTwo.NextFeature
    Wend

    MsgBox "done!"


    End Sub


     

  • 相关阅读:
    RHEL 5.7 Yum配置本地源[Errno 2] No such file or directory
    SQL SERVER中什么情况会导致索引查找变成索引扫描
    Vmware扩展磁盘如何不需重启系统
    Vmware虚拟机进入BIOS方法
    Linux LVM学习总结——删除物理卷
    Linux系统检查查看桌面环境
    spring面试问题与答案集锦
    solr查询特殊字符的处理
    阅读源代码的一点小技巧
    solr查询工作原理深入内幕
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1771510.html
Copyright © 2011-2022 走看看