zoukankan      html  css  js  c++  java
  • ArcEngine 统计方法

    http://blog.csdn.net/gisoracle/article/details/4297823 ArcEngine 统计方法   概述 一般常用的统计功能例如:唯一字段统计、数据行数统计、数据值求和统计等。 1、基础统计(BaseStatistics)组件用来生成和报告统计结果。 2、IFrequencyStatistics接口提供对用来报告频率统计的成员的访 问。 3、IGenerateStatistics接口提供对用来生成统计结果的成员的访问。 4、IStatisticsResults提供对用来报告统计结果的成员的访问。 可访问的属性有Count,Sum,Maximum,Minimum,Meanm,StandardDeviation(标准差) DataStatistics 组件允许返回统计结果及单个字段的唯一值。组件创建后,用来分析的数据通过IDataStatistics::Cursor属性,以光标形式的传入。注意 ICursor的对象只能使用一次,如果要获取多个结果,应当再次创建光标。IDataStatistics是数据统计组件中唯一的接口 1、IDataStatistics 属性 Cursor--通过游标来生成统计表 Field--要统计的字段 UniqueValueCount--统计表中唯一值总数 UniqueValues--唯一值枚举 Statistics--IStatisticsResults对象,用于返回统计信息   2、IStatisticsResults 属性 Count--值总数 Maximum --最大值 Mean--算术平均值 Minimum--最小值 StandardDeviation--标准差 Sum--求和   示例:唯一字段统计,GeoDatabase没有提供DISTINCT这样的关键字进行唯一值查询,只有通过IDataStatistics::UniqueValues方式来获取唯一值     public void IDataStatistics_Example(IFeatureClass featureClass) { ICursor cursor = (ICursor)featureClass.Search(null, false); IDataStatistics dataStatistics = new DataStatisticsClass(); dataStatistics.Field = "PIP_SIZE"; dataStatistics.Cursor = cursor; //求唯一值 System.Collections.IEnumerator enumerator = dataStatistics.UniqueValues; enumerator.Reset(); while (enumerator.MoveNext()) { object myObject = enumerator.Current; Console.WriteLine("Value - {0}", myObject.ToString()); } //求算术平均值 cursor = (ICursor)featureClass.Search(null, false); dataStatistics.Cursor = cursor; ESRI.ArcGIS.esriSystem.IStatisticsResults statisticsResults = dataStatistics.Statistics; Console.WriteLine("mean value - {0}", statisticsResults.Mean); }   通过接口说明和示例可以看出,统计信息是基于数字字段的统计。   另外,关于查询与统计接口,还有IQueryDef、IQueryFilterDefinition、ITable等。例子如下:   //IQueryDef Example public void IQueryDef_Example(IWorkspace workspace) { IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace; //create query definition IQueryDef queryDef = featureWorkspace.CreateQueryDef(); //provide list of tables to join queryDef.Tables = "datesjoin,dudatest"; //retrieve the fields from all tables queryDef.SubFields = "sde.datesjoin.dt_field = sde.dudates.dt_field"; //set up join queryDef.WhereClause = "datesjoin.dt_field = dudates.dt_field"; //Create FeatureDataset. Note the use of .OpenFeatureQuery. //The name "MyJoin" is the name of the restult of the query def and //is used in place of a feature class name. IFeatureDataset featureDataset = featureWorkspace.OpenFeatureQuery("MyJoin", queryDef); //open layer to test against IFeatureClassContainer featureClassContainer = (IFeatureClassContainer)featureDataset; IFeatureClass featureClass = featureClassContainer.get_ClassByName("MyJoin"); }   //IQueryFilterDefinition PostfixClause Example public void IQueryFilterDefinition_PostfixClause_Example(IFeatureClass featureClass) { //this function uses the PostfixClause property to append an Order By clause to the query. IQueryFilter queryFilter = new QueryFilterClass(); queryFilter.SubFields = "FULLNAME"; queryFilter.WhereClause = "OBJECTID > 10"; IQueryFilterDefinition queryFilterDefinition = (IQueryFilterDefinition)queryFilter; queryFilterDefinition.PostfixClause = "ORDER BY FULLNAME"; IFeatureCursor featureCursor = featureClass.Search(queryFilter, true); int fieldIndex = featureCursor.FindField("FULLNAME"); IFeature feature = featureCursor.NextFeature(); while (feature != null) { Console.WriteLine("The value of the {0} field is {1)",featureCursor.Fields.get_Field(fieldIndex).Name,feature.get_Value(fieldIndex)); feature = featureCursor.NextFeature(); } }     //ITable Example Public Void ITable_Example(IFeatureClass featureClass) {   ITable pTable = featureClassas ITable; Console.WriteLine("The Row Count is:{0}",pTable.RowCount.Tostring());   }
  • 相关阅读:
    【PAT甲级】1043 Is It a Binary Search Tree (25 分)(判断是否为BST的先序遍历并输出后序遍历)
    Educational Codeforces Round 73 (Rated for Div. 2)F(线段树,扫描线)
    【PAT甲级】1042 Shuffling Machine (20 分)
    【PAT甲级】1041 Be Unique (20 分)(多重集)
    【PAT甲级】1040 Longest Symmetric String (25 分)(cin.getline(s,1007))
    【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
    Codeforces Round #588 (Div. 2)E(DFS,思维,__gcd,树)
    2017-3-9 SQL server 数据库
    2017-3-8 学生信息展示习题
    2017-3-5 C#基础 函数--递归
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327232.html
Copyright © 2011-2022 走看看