基础统计(BaseStatistics)组件用来生成和报告统计结果。IFrequencyStatistics接口提供对用来报告频率统计的成员的访问。IGenerateStatistics接口提供对用来生成统计结果的成员的访问。IStatisticsResults提供对用来报告统计结果的成员的访问。可访问的属性有Count,Sum,Maximum,Minimum,Meanm,StandardDeviation(标准差)
DataStatistics组件允许返回统计结果及单个字段的唯一值。组件创建后,用来分析的数据通过IDataStatistics::Cursor属性,以光标形式的传入。注意ICursor的对象只能使用一次,如果要获取多个结果,应当再次创建光标。
IDataStatistics是数据统计组件中唯一的接口,下面是例子
''IDatastatics接口使用 例子 Dim pMxDoc As esriArcMapUI.IMxDocument, pFLayer As esriCarto.IFeatureLayer, pData As esriGeoDatabase.IDataStatistics Dim pCursor As esriGeoDatabase.ICursor, pStatResults As esriSystem.IStatisticsResults
//找到需要统计的图层 Set pMxDoc = ThisDocument Set pFLayer = pMxDoc.FocusMap.Layer(0) ''限定查询条件,找到需要统计的记录集,当然也可以对全要素集中的记录进行统计 Dim pqfilter As IQueryFilter Set pqfilter = New QueryFilter pqfilter.WhereClause = "id>10" Set pCursor = pFLayer.Search(pqfilter, False) //实例化DataStatistics对象 Set pData = New esriGeoDatabase.DataStatistics pData.Field = "id" /////对id字段统计 Set pData.Cursor = pCursor ////统计记录通过Icursor对象传递给Datastatistics对象 Dim pEnumVar As esriSystem.IEnumVariantSimple, value As Variant Set pEnumVar = pData.UniqueValues ////获取唯一数值 value = pEnumVar.Next ////获取每个数值 MsgBox pData.UniqueValueCount ////获取唯一数字个数
////遍历找出所有统计数值 Do Until IsEmpty(value) Debug.Print "value - " & value value = pEnumVar.Next Loop ////利用StatisticsResult对象 统计报告 数据源的 极大,极小,平均数,方差等 统计信息 Set pStatResults = pData.Statistics Debug.Print "mean - " & pStatResults.Mean //统计 标准差 MsgBox pStatResults.StandardDeviation |