第四章 地图制图
Carto类库包含用于数据显示的组件,PageLayout,Map及各种形 式的Layer、Renderer由此库提供。
.
6-7
地图符号化
在我们拿到地图的时候,映入眼帘的是花花绿绿的符号。地 图符号是表达空间数据的基本手段,是我们沟通地图的语言 。符号化可以认为是给我们的空间数据披上多彩的衣服,让 她更加婀娜多姿。 从地图出现开始,人们就使用各种符号来修饰地图上的要素 ,使得地图能够清晰、美观,并且最重要的是使其能够直接 表达用户所需要的不同类型的信息,比如统计、分类信息。 地图符号不仅能表示事物的空间位置、形状、质量和数量特 征,而且还可以表示各事物间的相互联系及区域总体特征。
.
6-9
ArcEngine环境下的地图符号化
ArcEngine环境中提供了丰富的符号组件来满足地图设计中 的各种需求,这些组件包括颜色(Color)、符号 (Symbol) 、专题图制作( Renderer)三大系列。地图符 号化就是通过多个组件对象间的合作来完成。 用Color为要素配置显示颜色 用MarkerSymbol表示点符号 用LineSymbol表示线状符号 Symbol 用FillSymbol表示面状要素 用TextSymbol表示文字注记符号 用FeatureRenderer专题图渲染,符号化图层
.
6-12
4.1 颜色对象 Color
(1) ArcGIS 颜色模型
ArcGIS提供的颜色模型有:
RGB模型 CMYK模型(印刷) HSV模型 HIS模型 Gray模型
(8位信息)
.
RGB颜色模型
RGB颜色模型:最常用,所有颜色都是通过红色(Red)、绿色 (Green)、蓝色(Blue)这三原色的混合来显示。
GIS开发与应用 —基于ArcEngine方法
课前回顾
ContextMenuStrip1.Show( )
ITOCControl HitTest( ) ICommand 属于哪个类库?
ESRI.ArcGIS.SystemUI
SystemUI类库 定义了一些被ArcGIS用户界面组件所使用的对象 ,如ICommand、Itool、ItoolControl等。
Hue-色调 Saturation-饱和度 Value-明度
.
6-16
Gray模型 (8位信息)
Gray模型:没有彩色的,灰度图像由8位信息组成,并
使用256级的灰色来模拟颜色层次。
.
6-17
4.1 颜色对象 Color
(2) Color对象
Color对象是抽象类,有5个颜色子类(组件类) CMYKColor、RGBColor、HSVColor、HLSColor、GrayColor,6-3课前回顾
如何调用ControlsOpenDocCommandClass()?
ICommand pCommand = new ControlsOpenDocCommandClass ();
pCommand.OnCreate(axMapControl1.Object);
pCommand.OnClick();
.
6-15
HSV模型、HIS模型
HSV模型:每一种颜色都 是由色相(Hue,简H)、 饱和度(Saturation,简S) 和色明度(Value,简V) 所表示的
HIS色彩空间是从人的视觉 系统出发,用色调(Hue) 、色饱和度(Saturation或 Chroma)和亮度 ( Intensity或Brightness)来描 述色彩
常用的图层对象:
FeatureLayer: 矢量数据;
TinLayer: Tin 数据;
RasterLayer: 栅格数据
GroupLayer: 组图数据,一个图层的集合 CadFeatureLayer: CAD 要素数据
图层可以处理与之相关数据的所有绘图操作,但通常图层都是一个相关的
GetRGB (255, 0, 0)
.
4.1 颜色对象 Color
(3)色带(ColorRamp)对象
在地图符号化的过程中,需
要的颜色常常不是一种,而 是随机或有序产生的一组颜
色。如果对某一个图层进行
符号化需要上百种颜色,如 图所示,程序开发者无法逐 个产生。
.
4.1 颜色对象 Color
.
课前回顾
学会查帮助文档
.
课前回顾
.
第四章 地图制图
4.1 颜色对象 Color (ESRI.ArcGIS.Display)
ESRI.ArcGIS.Display类库所含的组件,可以支持在输出设备上 进行符号化制图
4.2 符号对象Symbol (ESRI.ArcGIS.Display) 4.3 专题图制作Renderer (ESRI.ArcGIS.Carto)
属性。
.
4.1 颜色对象 Color
private void btnCreateColorRamp_Click(object sender, EventArgs e) { //创建一个新AlgorithmicColorRampClass对象 IAlgorithmicColorRamp pAlgColorRamp = new AlgorithmicColorRampClass(); //创建起始颜色对象 pAlgColorRamp.FromColor = getRGBColor(0, 255, 0); //创建终止颜色对象 pAlgColorRamp.ToColor = getRGBColor(255,0, 0); //设置梯度类型 pAlgColorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm; pAlgColorRamp.Size = 5;//设置颜色带颜色数量 //创建颜色带 bool bture = true; pAlgColorRamp.CreateRamp(out bture); //使用IEnumColors获取颜色带 IEnumColors pEnumColors = null; pEnumColors = pAlgColorRamp.Colors; //设置5个picturebox的背景色为产生颜色带的5个颜色 this.pictureBox1.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB); this.pictureBox2.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB); this.pictureBox3.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB); this.pictureBox4.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB); this.pictureBox5.BackColor = ColorTranslator.FromOle(pEnumColors.Next().RGB);
地级市人民政府驻地,用“粗圆环符号”突出人口最多的一个 地级市。
地图的符号化分为点、线、面三大类要素的符号化。标注也 是符号化的一项重要内容。 一般情况下,一个图层配置相同的符号即可。但也有特殊需 求,在同一图层中给某几个特殊要素配置特定的符号。
在地图符号化的基础上,为了突出体现某种特殊信息,就需 要专题图制作。专题图实际上是为了表达某种空间信息而进 行的特殊符号化,一般有分类图、分级图、统计图、密度图 等。
ArcGIS Engine提供了颜色带(ColorRamp)对象:
ColorRamp对象是抽象类,它实现了IColorRamp接口,该类 有4个子类:
AlgorithmicColorRamp(起止颜色带)用起始颜色、终止颜色确定一个 颜色带, 起始、终止颜色使用RGB模型
RandomColorRamp(随机颜色带)使用HSV颜色模型来确定一串颜色 PresetColorRamp(预设颜色带)预设的颜色模式,可存储13种颜色 MultiPartColorRamp(叠加颜色带)叠加产生颜色带
它们可以使用IColor接口定义的方法设置颜色对象的基本属性。
IRgbColor
IHsvColor
.
4.1 颜色对象 Color
以一个函数来通过R,G,B值来构建一个RGBColor对象:
private IRgbColor GetRGB(int r,int g,int b) { IRgbColor pRgbColor= new RgbColorClass();//构建一个 RgbColorClass pRgbColor.Red = r;//设置 Red 属性 pRgbColor.Green = g;//设置 Green 属性 pRgbColor.Blue = b;//设置 Blue 属性 return pRgbColor; }
Renderer对象。Renderer对象的属性控制着数据在地图中的显示方式。常用的渲 染器( Renderer )对象: SimpleRenderer UniqueValueRenderer ClassBreaksRenderer ProportionalSymbolRenderer DotDensityRenderer . ChartRenderer BiUniqueValveRenderer
RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量 分配一个0~255范围内的强度值。RGB图像只使用三种颜色, 就可以使它们按照不同的比例混合,在屏幕上重现16777216 种颜色。