///
/// 栅格分级渲染
///
///
///
private void toolStripButton_RasterClassifyRender_Click(object sender, EventArgs e)
{
if (mapControlMain.ActiveView.CurrentLayer == null) return;
IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
if (rasterLayer == null)
return;
//1 设置分级阈值,根据实际情况进行添加
IUniqueValues uniqueValues = new UniqueValues();
uniqueValues.Clear();
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
//2 设置色带
IList colors = new List();
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
//3 RasterClassifyColorRampRender分级渲染
IRasterClassifyColorRampRender rClassifyColorRampRender = new RasterClassifyColorRampRender();
rClassifyColorRampRender.ClassColors = colors;
rClassifyColorRampRender.SetBandIndex();
rClassifyColorRampRender.UniqueValues = uniqueValues;
//4 设置备注信息(可以自定义备注信息)
IList listLabel = new List();
int count = uniqueValues.GetCount();
string beginLabel = "Min";
string lastLabel = "";
for (int i = ; i < count; i++)
{
if (i - >= )
{
beginLabel = uniqueValues.GetUniqueValue(i - ).ToString();
}
lastLabel = uniqueValues.GetUniqueValue(i).ToString();
string labelInfo = string.Format("{0}-{1}", beginLabel,lastLabel);
listLabel.Add(labelInfo);
}
rClassifyColorRampRender.Labels = listLabel;
//设置rasterRender
IRasterRender rasterRender = rClassifyColorRampRender as IRasterRender;
rasterLayer.Render = rasterRender;
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}