Exemple #1
0
        private void classify()
        {
            if (layer2Symbolize == null)
            {
                return;
            }
            IFeatureClass featureClass = layer2Symbolize.FeatureClass;
            ITable        pTable       = (ITable)featureClass;

            ITableHistogram pTableHistogram = new BasicTableHistogramClass();
            IBasicHistogram pHistogram      = (IBasicHistogram)pTableHistogram;

            pTableHistogram.Field = strRendererField;
            if (strNormalizeField.ToLower() != "none")
            {
                pTableHistogram.NormField = strNormalizeField;
            }
            pTableHistogram.Table = pTable;
            object dataFrequency;
            object dataValues;

            pHistogram.GetHistogram(out dataValues, out dataFrequency);
            //下面是分级方法,用于根据获得的值计算得出符合要求的数据
            //根据条件计算出Classes和ClassesCount,numDesiredClasses为预定的分级数目
            IClassifyGEN pClassify = new NaturalBreaksClass();

            switch (strClassifyMethod)
            {
            case "等间隔分类":
                pClassify = new EqualIntervalClass();
                break;

            //case "预定义间隔分类":
            //    pClassify = new DefinedIntervalClass();
            //    break;
            case "分位数分类":
                pClassify = new QuantileClass();
                break;

            case "自然裂点分类":
                pClassify = new NaturalBreaksClass();
                break;

            case "标准差分类":
                pClassify = new StandardDeviationClass();
                break;

            case "几何间隔分类":
                pClassify = new GeometricalIntervalClass();
                break;

            default:
                break;
            }
            int numDesiredClasses = gClassCount;

            pClassify.Classify(dataValues, dataFrequency, ref numDesiredClasses);
            gClassbreaks = (double[])pClassify.ClassBreaks;
        }
Exemple #2
0
        private void classify()
        {
            if (layer2Symbolize == null)
            {
                return;
            }
            IFeatureClass   featureClass    = layer2Symbolize.FeatureClass;
            ITable          pTable          = featureClass as ITable;
            ITableHistogram pTableHistogram = new BasicTableHistogramClass();
            IBasicHistogram pHistogram      = pTableHistogram as IBasicHistogram;

            pTableHistogram.Field = strRendererField;
            if (strNormalizeField.ToLower() != "none")
            {
                pTableHistogram.NormField = strNormalizeField;
            }
            pTableHistogram.Table = pTable;
            object dataFrequency;
            object dataValues;

            pHistogram.GetHistogram(out dataValues, out dataFrequency);
            IClassifyGEN pClassify = new NaturalBreaksClass();

            switch (strClassifyMethod)
            {
            case "Equal Interval":
                pClassify = new EqualIntervalClass();
                break;

            case "Quantile":
                pClassify = new QuantileClass();
                break;

            case "Natural Breaks":
                pClassify = new NaturalBreaksClass();
                break;

            case "Geometrical Interval":
                pClassify = new GeometricalIntervalClass();
                break;

            default:
                break;
            }
            int numDesiredClass = gClassCount;

            pClassify.Classify(dataValues, dataFrequency, ref numDesiredClass);
            gClassbreaks = (double[])pClassify.ClassBreaks;
        }
 private void classify()
 {
     if (layer2Symbolize == null) return;
     IFeatureClass featureClass = layer2Symbolize.FeatureClass;
     ITable pTable = (ITable)featureClass;
     ITableHistogram pTableHistogram = new BasicTableHistogramClass();
     IBasicHistogram pHistogram = (IBasicHistogram)pTableHistogram;
     pTableHistogram.Field = strRendererField;
     if (strNormalizeField.ToLower() != "none")
         pTableHistogram.NormField = strNormalizeField;
     pTableHistogram.Table = pTable;
     object dataFrequency;
     object dataValues;
     pHistogram.GetHistogram(out dataValues, out dataFrequency);
     //下面是分级方法,用于根据获得的值计算得出符合要求的数据
     //根据条件计算出Classes和ClassesCount,numDesiredClasses为预定的分级数目
     IClassifyGEN pClassify = new NaturalBreaksClass();
     switch (strClassifyMethod)
     {
         case "等间隔分类":
             pClassify = new EqualIntervalClass();
             break;
         //case "预定义间隔分类":
         //    pClassify = new DefinedIntervalClass();
         //    break;
         case "分位数分类":
             pClassify = new QuantileClass();
             break;
         case "自然裂点分类":
             pClassify = new NaturalBreaksClass();
             break;
         //case "标准差分类":
         //    pClassify = new StandardDeviationClass();
         //    break;
         case "几何间隔分类":
             pClassify = new GeometricalIntervalClass();
             break;
         default:
             break;
     }
     int numDesiredClasses = gClassCount;
     pClassify.Classify(dataValues, dataFrequency, ref numDesiredClasses);
     gClassbreaks = (double[])pClassify.ClassBreaks;
 }