private void lblClassificationMethod_Click(object sender, EventArgs e) { if (layer2Symbolize == null) { return; } IFeatureClass featureClass = layer2Symbolize.FeatureClass; ITable pTable = (ITable)featureClass; ITableHistogram pTableHistogram2 = new BasicTableHistogramClass(); IBasicHistogram pHistogram2 = (IBasicHistogram)pTableHistogram2; pTableHistogram2.Field = strRendererField; if (strNormalizeField.ToLower() != "none") { pTableHistogram2.NormField = strNormalizeField; } pTableHistogram2.Table = pTable; object dataFrequency; object dataValues; pHistogram2.GetHistogram(out dataValues, out dataFrequency); //下面是分级方法,用于根据获得的值计算得出符合要求的数据 //根据条件计算出Classes和ClassesCount,numDesiredClasses为预定的分级数目 IClassifyGEN pClassify = null; pClassify = new NaturalBreaksClass(); int numDesiredClasses = gClassCount; pClassify.Classify(dataValues, dataFrequency, ref numDesiredClasses); UID pUid; pUid = new UIDClass(); pUid = pClassify.ClassID; IClassificationDialog pClassDialog; pClassDialog = new ClassificationDialogClass(); pClassDialog.Classification = pUid; pClassDialog.SetHistogramData(pHistogram2 as IHistogram); pClassDialog.ClassBreaks = pClassify.ClassBreaks; bool ok = pClassDialog.DoModal(0); if (ok == false) { return; } pUid = pClassDialog.Classification; gClassbreaks = (double[])pClassDialog.ClassBreaks; switch (pUid.Value.ToString()) { case "{62144BE1-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "等间隔"; break; case "{62144BE8-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "已定义的间隔"; break; case "{62144BE9-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "分位数"; break; case "{62144BEA-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "自然裂点"; break; case "{DC6D8015-49C2-11D2-AAFF-00C04FA334B3}": lblClassificationMethod.Text = "标准差"; break; default: break; } }
private void lblClassificationMethod_Click(object sender, EventArgs e) { if (layer2Symbolize == null) return; IFeatureClass featureClass = layer2Symbolize.FeatureClass; ITable pTable = (ITable)featureClass; ITableHistogram pTableHistogram2 = new BasicTableHistogramClass(); IBasicHistogram pHistogram2 = (IBasicHistogram)pTableHistogram2; pTableHistogram2.Field = strRendererField; if (strNormalizeField.ToLower() != "none") pTableHistogram2.NormField = strNormalizeField; pTableHistogram2.Table = pTable; object dataFrequency; object dataValues; pHistogram2.GetHistogram(out dataValues, out dataFrequency); //下面是分级方法,用于根据获得的值计算得出符合要求的数据 //根据条件计算出Classes和ClassesCount,numDesiredClasses为预定的分级数目 IClassifyGEN pClassify = null; pClassify = new NaturalBreaksClass(); int numDesiredClasses = gClassCount; pClassify.Classify(dataValues, dataFrequency, ref numDesiredClasses); UID pUid; pUid = new UIDClass(); pUid = pClassify.ClassID; IClassificationDialog pClassDialog; pClassDialog = new ClassificationDialogClass(); pClassDialog.Classification = pUid; pClassDialog.SetHistogramData(pHistogram2 as IHistogram); pClassDialog.ClassBreaks = pClassify.ClassBreaks; bool ok = pClassDialog.DoModal(0); if (ok == false) return; pUid = pClassDialog.Classification; gClassbreaks = (double[])pClassDialog.ClassBreaks; switch (pUid.Value.ToString()) { case "{62144BE1-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "等间隔"; break; case "{62144BE8-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "已定义的间隔"; break; case "{62144BE9-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "分位数"; break; case "{62144BEA-E05E-11D1-AAAE-00C04FA334B3}": lblClassificationMethod.Text = "自然裂点"; break; case "{DC6D8015-49C2-11D2-AAFF-00C04FA334B3}": lblClassificationMethod.Text = "标准差"; break; default: break; } }