⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 统计分析.vb

📁 GIS的Arcengine编程
💻 VB
字号:
Imports ESRI.ArcGIS.Carto
Imports ESRI.ArcGIS.Controls
Imports ESRI.ArcGIS.Display
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Geodatabase
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.Output
Imports ESRI.ArcGIS.SystemUI
Public Class 统计分析

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim pFeatlayer As IFeatureLayer
        If ComboBox1.Text = "cities" Then
            pFeatlayer = Form1.AxMapControl1.Map.Layer(0)
        ElseIf ComboBox1.Text = "roads" Then
            pFeatlayer = Form1.AxMapControl1.Map.Layer(1)
        Else
            pFeatlayer = Form1.AxMapControl1.Map.Layer(2)
        End If

        Dim pFeatureCursor As IFeatureCursor
        pFeatureCursor = pFeatlayer.Search(Nothing, False)

        Dim myfeat As IFeature
        myfeat = pFeatureCursor.NextFeature

        If Not IsNumeric(myfeat.Value(pFeatureCursor.FindField(ListBox1.Text))) Then '''''''''''''''''''''有问题
            MsgBox("统计字段必须为数值型")
        Else

            Dim myDataStatistics As IDataStatistics
            myDataStatistics = New DataStatistics

            myDataStatistics.Field = ListBox1.Text
            myDataStatistics.Cursor = pFeatureCursor

            Dim k As IStatisticsResults
            k = myDataStatistics.Statistics
            Label1.Text = Label1.Text + k.Maximum.ToString
            Label2.Text = Label2.Text + k.Minimum.ToString
            Label3.Text = Label3.Text + k.Mean.ToString
            Label4.Text = Label4.Text + k.Sum.ToString
            Label5.Text = Label5.Text + k.StandardDeviation.ToString

        End If
        

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim pFeatlayer As IFeatureLayer
        If ComboBox1.Text = "cities" Then
            pFeatlayer = Form1.AxMapControl1.Map.Layer(0)
        ElseIf ComboBox1.Text = "roads" Then
            pFeatlayer = Form1.AxMapControl1.Map.Layer(1)
        Else
            pFeatlayer = Form1.AxMapControl1.Map.Layer(2)
        End If

        Dim pFeatureCursor As IFeatureCursor
        pFeatureCursor = pFeatlayer.Search(Nothing, False)

        '''''''''''''''''''''''''''''''''''''''''''''''''

        Dim count As Integer
        Dim myFieldsname As String
        ListBox1.Items.Clear()
        For count = 0 To pFeatureCursor.Fields.FieldCount - 1
            myFieldsname = pFeatureCursor.Fields.Field(count).Name
            If myFieldsname = "Shape" Then
                'do nothing
            Else
                ListBox1.Items.Add(myFieldsname)
            End If

        Next count
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -