第5章 地图制图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1)RGB颜色模型
这是一种最常用的颜色模型,所有的颜色都是通过红色
(Red)、绿色(Green)和蓝色(Blue)这三原色的混合来显示
通过显示红、绿、蓝光的像素,计算机显示器就可以描绘
上百种、上千种甚至几百万种不同的颜色
要定义一个表示为RGB值的颜色,用户需要分别给出光的
红、绿、蓝三原色的值

IRandomColorRamp接口的属性和方法如下:
2.地图的符号化
在ArcGIS Engine中,所有地图数据及其修饰要素的显示
样式都是由Symbol类控制的。主要分为三大类符号:
MarkerSymbol(点符号)、 LineSymbol(线符号)和 FillSymbol(填充符号)来绘制地理要素的几何图形
1)RGB颜色模型
用于RGB 颜色模型的一些规则: 如果所有的RGB值相等,则产生的颜色是灰色调的 如果所有的RGB值为0,则产生的颜色为黑色 如果所有的RGB值为255,则产生的颜色为白色
2)CMYK颜色模型
CMYK是一种颜色模式,是印刷时必须使用的一种模式 C、M、Y、K分别指的是青色(Cyan)、洋红色(Magenta)、

• • • • }
return pHsvColor;
pHsvColor = new HsvColorClass(); pHsvColor.Hue = intH; pHsvColor.Saturation = intS;

• • }
pHsvColor.Value = intV;
return pHsvColor;
5)Gray模型
灰度图像 ,由8位信息组成,并使用256级的灰色来模
拟颜色层次
灰度值为0表示黑色,值为255表示白色
Color对象
ห้องสมุดไป่ตู้
Color类是一个抽象类,它包括5个颜色子类,分别是:
① CmykColor类,实现了ICmykColor接口
② RgbColor类,实现了IRgbColor接口
//设置梯度类型 pAlgColorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm; //设置颜色带颜色数量
pAlgColorRamp.Size = 10;
//创建颜色带 bool bture = true; pAlgColorRamp.CreateRamp(out bture); return pAlgColorRamp; }
下面代码是封装的获取HSV颜色值的方法
• //输入HSV值,获得IHsvColor型值 • public IHsvColor GetHsvColor(int intH, int intS, int intV) • { • • • • IHsvColor pHsvColor = null; if (intH < 0 || intH > 360 || intS < 0 || intS > 100 || intV < 0 || intV > 100) {
黄色(Yellow)和黑色(Black)四种颜色的油墨,使用分别从 0~100,也就是颜色从最浅到最深的数值。
数值越小颜色越浅,反之颜色则越深,当每种颜色都达
到最高值100时则为深黑色。
2)CMYK颜色模型
3)HSV颜色模型
即色调(Hue)、饱和度(Saturation)和明度(Value)颜色模型
MultiPartColorRamp(叠加渐变色)
RandomColorRamp(随机渐变色) PresetColorRamp(预设渐变色)
ColorRamp类及其子类
ColorRamp类及其子类 4种颜色带说明
AlgorithmicColorRamp 用起始颜色、终止颜色确定一个颜色 带
TextSymbol类
1) MarkerSymbol类及其子类
MarkerSymbol类是用于修饰点对象的符号,它主要拥
有5个子类,不同的子类可以产生不同类型的点符号
所有的MarkerSymbol子类都实现了IMarkerSymbol接
口,这个接口定义了标记符号的公共方法和属性,如
Angle、Color、Size和XOffset、YOffset等。
暗淡,明度(Value)的取值范围为0~100。值为0 表示黑色, 但是值为100不表示白色,它只是表明可能的最亮颜色
3)HSV颜色模型
以下是用于HSV颜色模型的一些规则: 如果Value = 0,产生的颜色为黑色。 如果Saturation = 0,产生的颜色为暗灰色。 如果Value = 100 且Saturation = 0,产生的颜色为白色
1)MarkerSymbol类及其子类
SimpleMarkerSymbol用与设置简单类型的点符号,该类实现了
ISimpleMarkerSymbol接口。其Style属性用于设置点类型的样 式,它有五种类型,并存储在esriSimpleMarkerStyle变量中, 分别是圆形、矩形、十字形、X型、菱形。
Color类及其子类
ColorRamp类及其子类
ColorRamp类的对象可以产生颜色带,这个类实现了
IColorRamp接口,它定义了一系列颜色带的属性,如 Size(产生多少种颜色),Colors(颜色带 IEnumColor)
ColorRamp是抽象类,它有4个子类,分别是
AlgorithmicColorRamp(起止渐变色)

• • • • • • • • }
{
return pRgbColor; } pRgbColor = new RgbColorClass(); pRgbColor.Red = intR; pRgbColor.Green = intG; pRgbColor.Blue = intB; return pRgbColor;
牟乃夏 ArcGIS Engine 地理 信息系统开发教程 配套PPT--第5章 地图制图
目 录
符号化
专题图制作
地图整饰与输出
一、符号化
1.颜色模型 2.地图符号化 3.地图标注
1.ArcGIS颜色模型
1)RGB颜色模型 2)CMYK颜色模型 3)HSV颜色模型
4)Gray模型
//创建终止颜色对象 pToColor.Red = 0; pToColor.Green = 255; pToColor.Blue = 0;
//设置AlgorithmicColorRampClass的起止颜色属性 pAlgColorRamp.ToColor = pFromColor;
pAlgColorRamp.FromColor = pToColor;
IRgbColor pFromColor = new RgbColorClass();
IRgbColor pToColor = new RgbColorClass(); //创建起始颜色对象
pFromColor.Red = 255; pFromColor.Green = 0; pFromColor.Blue = 0;


IAlgorithmicColorRamp 接口的属性, FromColor 属性用于 设置或返回起始颜色值, ToColor 属性用于设置或返回终 止颜色值。

IAlgorithmicColorRamp接口的属性和方法如下:
AlgorithmicColorRamp代码示例

代码示例:
public IColorRamp CreateAlgorithmicColorRamp() { //创建一个新AlgorithmicColorRampClass对象 IAlgorithmicColorRamp pAlgColorRamp = new AlgorithmicColorRampClass();
RandomColorRamp类介绍

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

RandomColorRamp类实现了IRandomColorRamp接口
RandomColorRamp类介绍
MultiPartColorRamp
RandomColorRamp PresetColorRamp
叠加产生颜色带
随机地创建一系列颜色 预设的颜色模式,可存储13种颜色
AlgorithmicColorRamp类介绍及代码示例

AlgorithmicColorRamp 是通过起止颜色来确定多个在这 两个颜色之间的色带 AlgorithmicColorRamp类实现了两个主要的接口: IColorRamp和 IAlgorithmicColorRamp,两个接口之间是接 口继承关系,后者包含了前者所有的方法和属性
此外还有两种特殊类型的符号:一种是TextSymbol,用
于文字标注;另一种是ChartRender ,用于显示饼图、
条形图、柱状图等表示统计图表类型(在专题地图中详
细讲述)。
符号的设置
1) 2) 3) 4)
MarkerSymbol类及其子类 LineSymbol类及其子类
FillSymbol类及其子类
③ HsvColor类,实现了IHsvColor接口
④ HlsColor类,实现了IHlsColor接口 ⑤ GrayColor类,实现了IGrayColor接口 在ArcGIS Engine中最常用的是RGB和HSV这两种颜色模型。
下面代码是封装的获取RGB颜色值的方法
• //输入RGB值,获得IRgbColor型值 • public IRgbColor GetRgbColor(int intR, int intG, int intB) • { • • IRgbColor pRgbColor = null; if (intR < 0 || intR > 255 || intG < 0 || intG > 255 || intB < 0 || intB > 255)
色调值指明了颜色在色环中的位置,以度表示。例如,色调
值为0的颜色是暗红色,而色调值为180 的颜色是暗青色
饱和度描述了颜色的纯度。饱和度的取值范围为0~100,因
此,饱和度为20意味着中等暗色,而饱和度为100意味着可 能的最纯的颜色
明度(Value)也称为亮度,亮度高,色彩明亮,亮度低,色彩
代码示例: private void SimpleMaker_Click(object sender, EventArgs e) { //获取目标图层 ILayer pLayer = new FeatureLayerClass(); pLayer = mainMapControl.get_Layer(0); IGeoFeatureLayer pGeoFeatLyr = pLayer as IGeoFeatureLayer; //设置点符号 ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbol(); pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSSquare;//设置点符号样式为 方形
1) MarkerSymbol类及其子类
MarkerSymbol类的五个主要子类:

SimpleMarkerSymbol ArrowMarkerSymbol CharacterMarkerSymbol PictureMarkerSymbol

MultiLayerMarkerSymbol
CharacterMarkerSymbol可以将点要素显示为字符,该类实现了
ICharacterMarkerSymbol接口,Font属性设置字体类型, Characterindex属性用于设置或返回要显示的字符。设置显示
的字符由ASCII码决定。
1) MarkerSymbol类及其子类

MultiPartColorRamp类介绍

MultiPartColorRamp类是由两个色带叠加生成一个新的色带。

MultiPartColorRamp 类 实 现 了 IMultiPartColorRamp 接 口 , 其
AddRamp方法用于添加一个基础色带。该色带可以在表达具有
零点的现象(如人口增长或温度)时使用。
相关文档
最新文档