第四章 图层符号

  AE9.3 提供了SymbologyControl控件,用于显示ARCGIS符号库中的符号。   组件库中的组件对象分为Color(颜色),Symbol(符号),Render(渲染)三大系列,图层符号化就是通过多个组件对象来合作完成的
4.3 符号化Color(颜色)体系 4.3.1 ArcGIS 颜色模型  

  ArcGIS提供的颜色模型有: RGB、CMY(青、洋红、黄),HSV(色彩、纯度、明度),Gray(灰度级),HLS(色相、亮度、饱和度)   由此延伸出,Color抽象类的 5个子类:CmykColor,RGBColor,HSVColor,HLSColor,GrayColor;   AE中常用的是RGB和HSV,RGB类实现IRgbColor接口,HSV类实现IHsvColor接口   程序中常用的 GetRGB方法,就是用来构建一个RGBColor对象的
4.3.2 COlorRamp对象

  一个图层有上百种颜色时,不能逐个产生,因此AE提供了ColorRamp对象   ColorRamp类的对象可以产生颜色带,实现了IColorRamp接口,它定义的属性如:Size(产生多少种颜色),Colors(颜色带IEnumColor)
  ColorRamp类是一个抽象类,子类包括4种:   RandomColorRamp(随机颜色带):使用HSV颜色模型来确定一串颜色;   PresetColorRamp(预设颜色带):预设的颜色模式,可存储13种颜色;   AlgorithmicColorRamp(起止颜色带):用起始颜色、终止颜色确定一个颜色带,起始、终止颜色使用HSV模型   MultiPartColorRamp(叠加颜色带):叠加产生颜色带           生成颜色带实例: 接下来制作一个实例演示AlgorithmicColorRamp的Demo:

  在WinForm窗体中,创建如下界面:

  接下来编写如下代码:

  1. 1 using System;
  2. 2 using System.Collections.Generic;
  3. 3 using System.ComponentModel;
  4. 4 using System.Data;
  5. 5 using System.Drawing;
  6. 6 using System.Linq;
  7. 7 using System.Text;
  8. 8 using System.Windows.Forms;
  9. 9 using ESRI.ArcGIS.Display;
  10. 10
  11. 11 namespace TM_A_Project
  12. 12 {
  13. 13     public partial class AlgorithmicColorRamp演示 : Form
  14. 14     {
  15. 15         public AlgorithmicColorRamp演示()
  16. 16         {
  17. 17             InitializeComponent();
  18. 18         }
  19. 19
  20. 20         private void btnCreateColorRamp_Click(object sender, EventArgs e)
  21. 21         {
  22. 22             // 创建一个新AlgorithmicColorRampClass对象
  23. 23             IAlgorithmicColorRamp algColorRamp = new AlgorithmicColorRampClass();
  24. 24             // 创建起始颜色对象
  25. 25             IRgbColor startColor = GetRGBColor(255, 0, 0);
  26. 26
  27. 27             // 创建终止颜色
  28. 28             IRgbColor endColor = GetRGBColor(0, 255, 0);
  29. 29
  30. 30             // 设置AlgorithmicColorRampClass的起止颜色属性
  31. 31             algColorRamp.ToColor = startColor;
  32. 32             algColorRamp.FromColor = endColor;
  33. 33             // 设置梯度类型
  34. 34 algColorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm;
  35. 35             // 设置颜色带颜色数量
  36. 36             algColorRamp.Size = 5;
  37. 37             // 创建颜色带
  38. 38             bool bture = true;
  39. 39             algColorRamp.CreateRamp(out bture);
  40. 40             // 使用IEnumColors获取颜色带
  41. 41             IEnumColors pEnumColors = null;
  42. 42             pEnumColors = algColorRamp.Colors;
  43. 43             // 设置5个picturebox的背景色为产生颜色带的5个颜色
  44. 44             this.pictureBox1.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
  45. 45             this.pictureBox2.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
  46. 46             this.pictureBox3.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
  47. 47             this.pictureBox4.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
  48. 48             this.pictureBox5.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
  49. 49         }
  50. 50
  51. 51         private IRgbColor GetRGBColor(int r, int g, int b)
  52. 52         {
  53. 53             IRgbColor rgbColor = new RgbColorClass();
  54. 54             rgbColor.Red = r;
  55. 55             rgbColor.Green = g;
  56. 56             rgbColor.Blue = b;
  57. 57             return rgbColor;
  58. 58         }
  59. 59     }
  60. 60 }
 1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using ESRI.ArcGIS.Display;
10
11 namespace TM_A_Project
12 {
13 public partial class AlgorithmicColorRamp演示 : Form
14 {
15 public AlgorithmicColorRamp演示()
16 {
17 InitializeComponent();
18 }
19
20 private void btnCreateColorRamp_Click(object sender, EventArgs e)
21 {
22 // 创建一个新AlgorithmicColorRampClass对象
23 IAlgorithmicColorRamp algColorRamp = new AlgorithmicColorRampClass();
24 // 创建起始颜色对象
25 IRgbColor startColor = GetRGBColor(255, 0, 0);
26
27 // 创建终止颜色
28 IRgbColor endColor = GetRGBColor(0, 255, 0);
29
30 // 设置AlgorithmicColorRampClass的起止颜色属性
31 algColorRamp.ToColor = startColor;
32 algColorRamp.FromColor = endColor;
33 // 设置梯度类型
34 algColorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm;
35 // 设置颜色带颜色数量
36 algColorRamp.Size = 5;
37 // 创建颜色带
38 bool bture = true;
39 algColorRamp.CreateRamp(out bture);
40 // 使用IEnumColors获取颜色带
41 IEnumColors pEnumColors = null;
42 pEnumColors = algColorRamp.Colors;
43 // 设置5个picturebox的背景色为产生颜色带的5个颜色
44 this.pictureBox1.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
45 this.pictureBox2.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
46 this.pictureBox3.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
47 this.pictureBox4.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
48 this.pictureBox5.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
49 }
50
51 private IRgbColor GetRGBColor(int r, int g, int b)
52 {
53 IRgbColor rgbColor = new RgbColorClass();
54 rgbColor.Red = r;
55 rgbColor.Green = g;
56 rgbColor.Blue = b;
57 return rgbColor;
58 }
59 }
60 }

  执行效果如下图所示:

  RandomColorRamp对象产生随机颜色带,RandomColorRamp也需要设定一个范围,但这个范围是HSV颜色模型的,颜色将在这个范围内随机出现   RandomColorRamp实现了 IRandomColorRamp接口。

  以下是生成RandomColorRamp的代码段:

  1. 1         // 以下是生成RandomColorRamp的代码段
  2. 2         public void CreateRandomColorRamp()
  3. 3         {
  4. 4             IRandomColorRamp pRandomColorRamp = new RandomColorRampClass();
  5. 5             // 制作一系列介于橘黄色和蓝绿色之间的随机颜色
  6. 6             pRandomColorRamp.StartHue = 40;
  7. 7             pRandomColorRamp.EndHue = 120;
  8. 8             pRandomColorRamp.MinValue = 65;
  9. 9             pRandomColorRamp.MaxValue = 90;
  10. 10             pRandomColorRamp.MinSaturation = 25;
  11. 11             pRandomColorRamp.MaxSaturation = 45;
  12. 12             pRandomColorRamp.Size = 20;
  13. 13             pRandomColorRamp.Seed = 23;
  14. 14             bool btrue = true;
  15. 15             pRandomColorRamp.CreateRamp(out btrue);
  16. 16
  17. 17             IEnumColors pEnumColors = pRandomColorRamp.Colors;
  18. 18
  19. 19             // 接下来对pEnumColors进行操作即可  pEnumColors.Next().RGB
  20. 20         }
 1         // 以下是生成RandomColorRamp的代码段
2 public void CreateRandomColorRamp()
3 {
4 IRandomColorRamp pRandomColorRamp = new RandomColorRampClass();
5 // 制作一系列介于橘黄色和蓝绿色之间的随机颜色
6 pRandomColorRamp.StartHue = 40;
7 pRandomColorRamp.EndHue = 120;
8 pRandomColorRamp.MinValue = 65;
9 pRandomColorRamp.MaxValue = 90;
10 pRandomColorRamp.MinSaturation = 25;
11 pRandomColorRamp.MaxSaturation = 45;
12 pRandomColorRamp.Size = 20;
13 pRandomColorRamp.Seed = 23;
14 bool btrue = true;
15 pRandomColorRamp.CreateRamp(out btrue);
16
17 IEnumColors pEnumColors = pRandomColorRamp.Colors;
18
19 // 接下来对pEnumColors进行操作即可 pEnumColors.Next().RGB
20 }

4.4 符号化Symbol体系   AE9.3 为开发人员提供了32种符号,主要分为三大类:   1) MarkerSymbol(点符号),LineSymbol(线符号)和FillSymbol(填充符号)来绘制地理要素的几何图形   2)TextSymbol ,用于文字标注   3) 3D Chart 符号,用于显示饼图等三维对象

4.4.1 MarkerSymbol 对象   MarkerSymbol 用于修饰点对象的符号,它拥有13个子类,不同子类用于产生不同类型的点符号。   所有的MarkerSymbol类都实现了IMarkerSymbol接口,该接口定义了标记符号的方法、属性,如 角度、颜色、大小和X,Y偏移量等           以下代码段用来创建 SimpleMarkerSymbol 类型符号

  1. 1         public void CreateSimpleMarkerSymbol()
  2. 2         {
  3. 3             // 创建SimpleMarkerSymbolClass对象
  4. 4             ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();
  5. 5             // 创建RgbColorClass对象为SimpleMarkerSymbol设置颜色
  6. 6             IColor pRgbColor = GetRgbColor(255, 0, 0);
  7. 7             pSimpleMarkerSymbol.Color = pRgbColor;
  8. 8             // 设置pSimpleMarkerSymbol对象的符号类型,选择钻石
  9. 9             pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;
  10. 10             // 设置pSimpleMarkerSymbol对象大小,设置为5
  11. 11             pSimpleMarkerSymbol.Size = 5;
  12. 12             // 显示外框线
  13. 13             pSimpleMarkerSymbol.Outline = true;
  14. 14             // 为外框线设置颜色
  15. 15             pSimpleMarkerSymbol.OutlineColor = GetRgbColor(0, 255, 0);
  16. 16             // 设置外框线的宽度
  17. 17             pSimpleMarkerSymbol.OutlineSize = 1;
  18. 18         }
 1         public void CreateSimpleMarkerSymbol()
2 {
3 // 创建SimpleMarkerSymbolClass对象
4 ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();
5 // 创建RgbColorClass对象为SimpleMarkerSymbol设置颜色
6 IColor pRgbColor = GetRgbColor(255, 0, 0);
7 pSimpleMarkerSymbol.Color = pRgbColor;
8 // 设置pSimpleMarkerSymbol对象的符号类型,选择钻石
9 pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond;
10 // 设置pSimpleMarkerSymbol对象大小,设置为5
11 pSimpleMarkerSymbol.Size = 5;
12 // 显示外框线
13 pSimpleMarkerSymbol.Outline = true;
14 // 为外框线设置颜色
15 pSimpleMarkerSymbol.OutlineColor = GetRgbColor(0, 255, 0);
16 // 设置外框线的宽度
17 pSimpleMarkerSymbol.OutlineSize = 1;
18 }

  在介绍Renderer对象时,会演示 用创建的点符号符号化一个图层。

4.4.2 LineSymbol 对象

  LineSymbol对象,用于修饰线性几何对象的符号。它拥有8个子类,用于产生不同类型的线符号。   实现了ILineSymbol接口,该接口包含Color和Width属性   以下代码段,演示如何创建一个MakerLineSymbol线符号

  1. 1         public void CreateLineSymbol()
  2. 2         {
  3. 3             IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();
  4. 4             pArrowMarker.Color = GetRgbColor(255, 0, 0);
  5. 5             pArrowMarker.Length = 10;
  6. 6             pArrowMarker.Width = 8;
  7. 7             pArrowMarker.Style = esriArrowMarkerStyle.esriAMSPlain;
  8. 8
  9. 9             IMarkerLineSymbol pMarkerLine = new MarkerLineSymbolClass();
  10. 10             pMarkerLine.MarkerSymbol = pArrowMarker;
  11. 11             pMarkerLine.Color = GetRgbColor(0, 0, 255);
  12. 12
  13. 13         }
 1         public void CreateLineSymbol()
2 {
3 IArrowMarkerSymbol pArrowMarker = new ArrowMarkerSymbolClass();
4 pArrowMarker.Color = GetRgbColor(255, 0, 0);
5 pArrowMarker.Length = 10;
6 pArrowMarker.Width = 8;
7 pArrowMarker.Style = esriArrowMarkerStyle.esriAMSPlain;
8
9 IMarkerLineSymbol pMarkerLine = new MarkerLineSymbolClass();
10 pMarkerLine.MarkerSymbol = pArrowMarker;
11 pMarkerLine.Color = GetRgbColor(0, 0, 255);
12
13 }

4.4.3 FillSymbol 对象

  FillSymbol对象,用来修改如多边形等具有面积的几何形体的符号对象,有11个子类,实现了IFillSymbol接口,有Color和OutLine属性   以下代码段,演示如何创建一个SimpleFillSymbol线符号

  1. 1         public void CreateFillSymbol()
  2. 2         {
  3. 3             // 为填充符号创建外框线符号
  4. 4             ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();
  5. 5             pCartoLineSymbol.Width = 2;
  6. 6             pCartoLineSymbol.Color = GetRgbColor(255, 0, 0);
  7. 7             // 创建一个填充符号
  8. 8             ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
  9. 9             // 设置填充符号的属性
  10. 10             IFillSymbol pFillSymbol = pSimpleFillSymbol;
  11. 11             pFillSymbol.Color = GetRgbColor(0, 255, 0);
  12. 12             pFillSymbol.Outline = pCartoLineSymbol;// 设置边框线
  13. 13         }
 1         public void CreateFillSymbol()
2 {
3 // 为填充符号创建外框线符号
4 ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();
5 pCartoLineSymbol.Width = 2;
6 pCartoLineSymbol.Color = GetRgbColor(255, 0, 0);
7 // 创建一个填充符号
8 ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
9 // 设置填充符号的属性
10 IFillSymbol pFillSymbol = pSimpleFillSymbol;
11 pFillSymbol.Color = GetRgbColor(0, 255, 0);
12 pFillSymbol.Outline = pCartoLineSymbol;// 设置边框线
13 }

4.4.4 TextSymbol 对象

  TextSymbol对象,用于修饰文字元素,文字元素在要素标注等方面很有用。   TextSymbol符号最重要的设置对象是它的字符,它实现了三个主要的接口来设置字符:ITextSymbol、ISimpleTextSymbol和IFormattedTextSymbol     ITextSymbol: 是定义文本字符样式额主要接口,它定义的ITextSymbol::Font属性,是产生一个TextSymbol符号的关键,       可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性,     ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。

  以下是一个构建TextSymbol 的函数:

  1. 1         /// <summary>
  2. 2         /// 生成文本符号
  3. 3         /// </summary>
  4. 4         /// <param name="pTxtSymbol">文本符号</param>
  5. 5         /// <param name="sFontName">字体名称</param>
  6. 6         /// <param name="iFont">字体大小</param>
  7. 7         /// <param name="iColor">字体颜色</param>
  8. 8         public void MakeTextSymbol(ref ITextSymbol pTxtSymbol, string sFontName, int iFont, int iColor)
  9. 9         {
  10. 10             try
  11. 11             {
  12. 12                 pTxtSymbol.Font.Name = sFontName;
  13. 13                 pTxtSymbol.Font.Size = (decimal)iFont;
  14. 14                 IRgbColor pRgbColor = new RgbColorClass();
  15. 15                 pRgbColor.RGB = iColor;
  16. 16                 pTxtSymbol.Color = (IColor)pRgbColor;
  17. 17                 pTxtSymbol.Angle = 0;
  18. 18                 pTxtSymbol.RightToLeft = false;
  19. 19                 pTxtSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;
  20. 20                 pTxtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABaseline;
  21. 21             }
  22. 22             catch (Exception)
  23. 23             {
  24. 24                 throw;
  25. 25             }
  26. 26         }
 1         /// <summary>
2 /// 生成文本符号
3 /// </summary>
4 /// <param name="pTxtSymbol">文本符号</param>
5 /// <param name="sFontName">字体名称</param>
6 /// <param name="iFont">字体大小</param>
7 /// <param name="iColor">字体颜色</param>
8 public void MakeTextSymbol(ref ITextSymbol pTxtSymbol, string sFontName, int iFont, int iColor)
9 {
10 try
11 {
12 pTxtSymbol.Font.Name = sFontName;
13 pTxtSymbol.Font.Size = (decimal)iFont;
14 IRgbColor pRgbColor = new RgbColorClass();
15 pRgbColor.RGB = iColor;
16 pTxtSymbol.Color = (IColor)pRgbColor;
17 pTxtSymbol.Angle = 0;
18 pTxtSymbol.RightToLeft = false;
19 pTxtSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;
20 pTxtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABaseline;
21 }
22 catch (Exception)
23 {
24 throw;
25 }
26 }

4.4.5 3DChartSymbol 对象

  3DChartSymbol 是一个抽象类,子类有:BarChart,PieChart和StackedChart   BarChartSymbol 是最常用的三维着色符号,不同类型的柱子代表一个要素类中不同的属性,柱子的高度取决于属性值的大小   PieChartSymbol 符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照他们的数值大小战友一个饼图中的不同比例的扇形区域

4.5 使用ServerStyle符号

  在ArcGIS Desktop中,我们使用的是Style符号库,相对应的在AE开发中,就是ServerStyle符号库   如何获取符号库中的符号? 举个栗子: 获取ESIR符号库中名称为Rose的符号:     1、首先构建一个ServerStyleGallery对象     2、其次使用IStyleGalleryStorage接口的AddFile()方法,加载ServerStyle文件(接口对象AddFile()方法会得到ServerStyleGallery对象?)     3、遍历ServerGallery中的Class,如果是FIllSymbol,则使用IStyleGallery的GetItems()方法,          返回一个可枚举的包含一系列StyleGalleryItem的EnumStyleGalleryItem对象     4、遍历EnumServerStyleGalleryItem枚举对象中的StyleGalleryItem如果名称是Rose,即可获取ESRI符号库中名称为Rose的StylegalleryITem     5、然后通过IStyleGalleryItem的ITem属性即可转换为Isymbol。

4.6 SymbologyControl控件   SymbologyControl用来显示ServerSTyle符号库中的符号样式,可以选择在该控件上选择一个符号用来符号化一个图层或者作为一个Element的符号   使用SymbologyControl可以再设计的模式下,再其属性页中加载ServerStyle符号库文件,   同样,可以使用LoadStyleFile和RemoveFile方法加载和移除ServerStyle符号库文件
4.7 符号化 之 Renderer(渲染)体系

  AE 9.3 对GIS数据的符号化分为矢量数据渲染和栅格数据渲染两大类:FEatureRender和RasterRender
4.7.1 FeatureRender对象:

  抽象类,有15个子类,负责进行不同类型的着色运算。   都实现了IFeatureRenderer接口,该接口定义了 进行要素图层符号化的公共属性和方法   通过IGeoFeatureLayer.Renderer属性,获取一个要素图层的符号化对象。
4.7.2 RasterRender 对象:

  抽象类,有15个子类,负责进行不同类型的着色运算。   都实现了IRasterRender接口,该接口定义了栅格图层符号化的公共属性和方法。   可通过IRasterLayer::Renderer属性获得一个栅格图层的符号化对象
  以下代码段,对一个RasterLayer进行RasterStrechColorRampRenderer(色带 渲染)符号化操作:

  1. 1         /// <summary>
  2. 2         /// StretchColorRamp符号化RasterLayer
  3. 3         /// </summary>
  4. 4         /// <param name="pRasterLayer"></param>
  5. 5         public void SetStretchColorRampRenderer(IRasterLayer pRasterLayer)
  6. 6         {
  7. 7             try
  8. 8             {
  9. 9                 // 创建RasterStretchColorRampRendererClass对象
  10. 10                 IRasterStretchColorRampRenderer pRStretchRender = new RasterStretchColorRampRendererClass();
  11. 11                 // QI到IRasterRenderer
  12. 12                 IRasterRenderer pRasterRender = pRStretchRender as IRasterRenderer;
  13. 13                 pRasterRender.Raster = pRasterLayer as IRaster;// 将栅格要素图层设置到 作为 栅格渲染的对象上
  14. 14                 pRasterRender.Update();
  15. 15                 // 创建两个起始颜色
  16. 16                 IRgbColor pFromRgbColor = new RgbColorClass();
  17. 17                 pFromRgbColor.Red = 255;
  18. 18                 IRgbColor pToRgbColor = new RgbColorClass();
  19. 19                 pToRgbColor.Blue = 255;
  20. 20
  21. 21                 // 创建起止颜色带
  22. 22                 IAlgorithmicColorRamp pAlgorithmicColorRamp = new AlgorithmicColorRampClass();
  23. 23                 pAlgorithmicColorRamp.Size = 255;
  24. 24                 pAlgorithmicColorRamp.FromColor = pFromRgbColor as IColor;
  25. 25                 pAlgorithmicColorRamp.ToColor = pToRgbColor as IColor;
  26. 26                 bool btrue = true;
  27. 27                 pAlgorithmicColorRamp.CreateRamp(out btrue);
  28. 28                 // 选择拉伸颜色带符号化所采用的颜色带(通过颜色带进行渲染操作)
  29. 29                 pRStretchRender.ColorRamp = pAlgorithmicColorRamp as IColorRamp;
  30. 30                 pRasterRender.Update();
  31. 31                 pRasterLayer.Renderer = pRasterRender;
  32. 32             }
  33. 33             catch (Exception)
  34. 34             {
  35. 35                 throw;
  36. 36             }
  37. 37         }
 1         /// <summary>
2 /// StretchColorRamp符号化RasterLayer
3 /// </summary>
4 /// <param name="pRasterLayer"></param>
5 public void SetStretchColorRampRenderer(IRasterLayer pRasterLayer)
6 {
7 try
8 {
9 // 创建RasterStretchColorRampRendererClass对象
10 IRasterStretchColorRampRenderer pRStretchRender = new RasterStretchColorRampRendererClass();
11 // QI到IRasterRenderer
12 IRasterRenderer pRasterRender = pRStretchRender as IRasterRenderer;
13 pRasterRender.Raster = pRasterLayer as IRaster;// 将栅格要素图层设置到 作为 栅格渲染的对象上
14 pRasterRender.Update();
15 // 创建两个起始颜色
16 IRgbColor pFromRgbColor = new RgbColorClass();
17 pFromRgbColor.Red = 255;
18 IRgbColor pToRgbColor = new RgbColorClass();
19 pToRgbColor.Blue = 255;
20
21 // 创建起止颜色带
22 IAlgorithmicColorRamp pAlgorithmicColorRamp = new AlgorithmicColorRampClass();
23 pAlgorithmicColorRamp.Size = 255;
24 pAlgorithmicColorRamp.FromColor = pFromRgbColor as IColor;
25 pAlgorithmicColorRamp.ToColor = pToRgbColor as IColor;
26 bool btrue = true;
27 pAlgorithmicColorRamp.CreateRamp(out btrue);
28 // 选择拉伸颜色带符号化所采用的颜色带(通过颜色带进行渲染操作)
29 pRStretchRender.ColorRamp = pAlgorithmicColorRamp as IColorRamp;
30 pRasterRender.Update();
31 pRasterLayer.Renderer = pRasterRender;
32 }
33 catch (Exception)
34 {
35 throw;
36 }
37 }

ArcEngine 9.3 学习笔记(六):图层符号化(COlorRamp,MarkerSymbol,LineSymbol,FillSymbol,TextSymbol,3DChartSymbol,使用ServerStyle符号库,FeatureRender,RasterRender)的更多相关文章

  1. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  2. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  3. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  4. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  5. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  6. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  7. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  8. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  9. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

随机推荐

  1. shell 学习

    将maven 项目里面的jar 包导出目录: 在项目里面执行: mvn dependency:copy-dependencies -DoutputDirectory=lib shell 参数之间必有空 ...

  2. linux安装php5.3

    安装php的依赖包 [root@localhost admin]# unzip libxml2-2.7.8.tar.zip [root@localhost admin]#tar zvxf libxml ...

  3. Android 弹出窗体

    findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View ...

  4. JQuery给元素绑定click事件多次执行的解决方法

    原绑定方法: $(".subNavdiv").click(function () { ###### }); 这种方法只会在原click方法中继续添加新方法: 解决办法更改绑定方法为 ...

  5. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

  6. MySql 优化 网上资料

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  7. java接口的理解

    接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口 ...

  8. web 之MVC

    MVC 把一个应用的输入.处理.输出流程按照Model, View, Controller 的方式进行分离,这样一个应用被分为三层:模型层.视图层.控制层. 1.View 2.Controller 在 ...

  9. iOS UITableViewCell透明度 和 cell文字居中

    1.创建UITableViewCell时,的模式用UITableViewCellStyleValue1时,透明度直接将UITableView的透明度设置以下就搞定拉,但是文字居中难以实现. 2.创建U ...

  10. STL 统计vector容器中指定对象元素出现的次数:count()与count_if()算法

    1 统计vector向量中指定元素出现的次数:count()算法 利用STL通用算法统计vector向量中某个元素出现的次数:count()算法统计等于某个值的对象的个数. #include &quo ...