DataStatistics组件允许返回统计结果及单个字段的唯一值。组件创建后,用来分析的数据通过IDataStatistics::Cursor属性,以光标形式的传入。注意ICursor的对象只能使用一次,如果要获取多个结果,应当再次创建光标。
Dim pFeatLyr As IFeatureLayer
pFeatLyr = New FeatureLayer
Dim pMap As IMap
pMap = AxMapControl1.Map
Dim i As Integer
For i = 0 To pMap.LayerCount - 1
If pMap.Layer(i).Name = "STATES" Then
pFeatLyr = pMap.Layer(i)
Exit For
End If
Next
Dim pFeatClass As IFeatureClass
pFeatClass = pFeatLyr.FeatureClass
Dim pDataStatistics As IDataStatistics
pDataStatistics = New DataStatistics
Dim pFeatCursor As IFeatureCursor
pFeatCursor = pFeatClass.Search(Nothing, False)
Dim pCursor As ICursor
pCursor = pFeatCursor
pDataStatistics.Cursor = pCursor
pDataStatistics.Field = "AREA"
Dim pStaResult As IStatisticsResults
pStaResult = pDataStatistics.Statistics
Dim num As Long
Dim dMax As Double
Dim dMin As Double
Dim dMean As Double
num = pStaResult.Count
dMax = pStaResult.Maximum
dMin = pStaResult.Minimum
dMean = pStaResult.Mean
MessageBox.Show("共有" + num.ToSt***+ "个州,其中最大面积是:" + dMax.ToSt***+ ",最小面积是:" + dMin.ToSt***+ ",平均面积是:" + dMean.ToString)