1.IRasterClassifyColorRampRenderer 的Break设置方法

IRasterClassifyColorRampRenderer这个接口是ArcEngine里对单波段栅格影像进行分类渲染的接口,这里的Break(也就是分断点)的设置有点奇怪,很容易用错,研究了一下,用法是这样的.

一个简单的例子,一个0-255的波段图像,要分为三类,0-85,85-170,170-255,那么这个断点其实有四个,分别是0,85,170,255

代码应该类似这样:

  1. IRasterClassifyColorRampRenderer ccr = ...
  2. .....
  3. .....
  4. ccr.set_Break(0,0);
  5. ccr.set_Label(0,"0-85");
  6. ccr.set_Symbol(0,tmpSymbol1);
  7. ccr.set_Break(1,85);
  8. ccr.set_Label(1,"85-170");
  9. ccr.set_Symbol(1,tmpSymbol2);
  10. ccr.set_Break(2,170);
  11. ccr.set_Label(2,"170-255");
  12. ccr.set_Symbol(2,tmpSymbol2);
  13. ccr.set_Break(3,255);

2.Renderer生效前的一些调用

在用语句使Renderer生效前,需要调用这样一些语句,不然经常会出些奇怪的问题:

IRasterClassifyColorRampRenderer ccr = .....

//这几句奇怪的语句,要调用一下

((IRasterRenderer)ccr).Raster = tarLyr.Raster;
 ccr.ClassCount = 4;
 ((IRasterRenderer)ccr).Update();

//再进行赋值和计算

ccr.set_Break...

ccr.set_Label...

tarLyr.Renderer = ccr as IRasterRenderer;
 map.Refresh(esriViewDrawPhase.esriViewAll);
 toc.Update();

from: http://blog.csdn.net/rrrrssss00/article/details/8026600

04-23 03:42