zoukankan      html  css  js  c++  java
  • vba 生成点的矩形buffer

    Private Sub CommandButton1_Click()

    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 pFeatureClass As IFeatureClass
    Dim pFLayer As IFeatureLayer
    Set pFLayer = pMap.Layer(0)
    Set pFeatureClass = pFLayer.FeatureClass
    Dim pFeatureCursor As IFeatureCursor
    Set pFeatureCursor = pFeatureClass.Search(Nothing, True)

    Dim totalcount As Integer
    totalcount = pFeatureClass.FeatureCount(Nothing)


    Dim pFeature As IFeature
    Set pFeature = pFeatureCursor.NextFeature

    Dim xmax As Double
    Dim ymax As Double
    Dim xmin As Double
    Dim ymin As Double


    Dim pPoint As IPoint
    Dim pPolygon As IPolygon
    Dim pArea As IArea
    Dim pNewPolygon As IPolygon
    Dim pNewPoints As IPointCollection
    Dim pNewPoint As IPoint


    Dim count As Integer
    count = 0

    Dim xdistance As Double
    xdistance = CDbl(TextBox1.Text)
    Dim ydistance As Double
    ydistance = CDbl(TextBox2.Text)

     
    While Not pFeature Is Nothing
      
       Set pPolygon = pFeature.Shape
       Set pArea = pPolygon
       Set pPoint = pArea.Centroid
      

       xmax = pPoint.X + xdistance
       ymax = pPoint.Y + ydistance
       xmin = pPoint.X - xdistance
       ymin = pPoint.Y - ydistance
      
       Set pNewPoints = New Polygon
      
       Set pNewPoint = New Point
       pNewPoint.X = xmin
       pNewPoint.Y = ymax
       pNewPoints.AddPoint pNewPoint
      
        Set pNewPoint = New Point
       pNewPoint.X = xmax
       pNewPoint.Y = ymax
       pNewPoints.AddPoint pNewPoint
      
       Set pNewPoint = New Point
       pNewPoint.X = xmax
       pNewPoint.Y = ymin
       pNewPoints.AddPoint pNewPoint

       Set pNewPoint = New Point
       pNewPoint.X = xmin
       pNewPoint.Y = ymin
       pNewPoints.AddPoint pNewPoint

      
       Set pNewPolygon = pNewPoints
       pNewPolygon.Close
      
       Set pFeature.Shape = pNewPolygon
       pFeature.Store
      
     
       Set pFeature = pFeatureCursor.NextFeature
      
       count = count + 1
      
      Label1.Caption = "第" & count & "个" & " / " & "共计:" & totalcount
     
      UserForm1.Repaint

    Wend

      MsgBox "done!"
    End Sub
    ————————————————————————————————————————————————————

    Sub point2polygon()

    UserForm1.Show

    End Sub

  • 相关阅读:
    Mac下Mysql启动异常["ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"]
    Appium的前世今生
    appium自动化测试
    ubuntu下nvm,node以及npm的安装与使用
    Android反编译
    Android 常用 adb 命令总结
    Android SDK开发常用工具的使用及其异常处理
    如何获取android app的Activity
    Android 上多方式定位元素(python)
    获得android应用的版本号
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1963605.html
Copyright © 2011-2022 走看看