📄 统计分析.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 + -