10、ArcEngine环境下的地图符号化_第1页
10、ArcEngine环境下的地图符号化_第2页
10、ArcEngine环境下的地图符号化_第3页
10、ArcEngine环境下的地图符号化_第4页
10、ArcEngine环境下的地图符号化_第5页
已阅读5页,还剩83页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容主要内容n地图符号化地图符号化nArcEngine环境下的地图符号化环境下的地图符号化一一 地图符号化地图符号化 地图符号是表达空间数据的基本手段,是地图的语地图符号是表达空间数据的基本手段,是地图的语言单位,是可视化表达地理信息内容的基础工具。言单位,是可视化表达地理信息内容的基础工具。n不仅能表示事物的空间位置、形状、质量和数量特不仅能表示事物的空间位置、形状、质量和数量特征,例如在一个城市管线系统中不同的线符号表示征,例如在一个城市管线系统中不同的线符号表示不同类型的管线,不同的点符号表示不同类型的设不同类型的管线,不同的点符号表示不同类型的设备等等备等等; 1 1 地图符号地图

2、符号一一 地图符号化地图符号化而且还可以表示各事物间的相互联系及区域总体特而且还可以表示各事物间的相互联系及区域总体特征征, 表达与空间位置相关的丰富信息:例如人口密表达与空间位置相关的丰富信息:例如人口密度符号可以直观的表示人口数量的空间分布情况。度符号可以直观的表示人口数量的空间分布情况。 所以地图数据的符号化决定着地图以何种所以地图数据的符号化决定着地图以何种“面目面目”展现给地图的使用者,空间数据的符号化对展现给地图的使用者,空间数据的符号化对GIS开开发有非常重要的意义。发有非常重要的意义。 1 1 地图符号地图符号一一 地图符号化地图符号化1 1 地图符号地图符号 地图符号由形状不

3、同、大小不一、色彩有别的图形地图符号由形状不同、大小不一、色彩有别的图形和文字组成,既是地图的语言,也是一种图形语言。和文字组成,既是地图的语言,也是一种图形语言。 根据事物分布的特点,地图符号分为点状、线状和根据事物分布的特点,地图符号分为点状、线状和面状三种。面状三种。一一 地图符号化地图符号化 地图符号库的设计与实现是地图符号库的设计与实现是GIS建设的一项基础性建设的一项基础性工作。地图符号库即地图符号描述信息的集合,通工作。地图符号库即地图符号描述信息的集合,通过地图符号描述代码,完成地图符号的使用、编辑过地图符号描述代码,完成地图符号的使用、编辑和存储,可相对节省存储空间,提高系统

4、效率。为和存储,可相对节省存储空间,提高系统效率。为了提高符号使用的效率,应用系统中对符号的使用了提高符号使用的效率,应用系统中对符号的使用一般是将所有单个的符号建库,使得系统对符号的一般是将所有单个的符号建库,使得系统对符号的操作在符号库的基础上进行。操作在符号库的基础上进行。2 2 地图符号库地图符号库一一 地图符号化地图符号化2 2 地图符号库地图符号库n地图符号库的构成 一个完整的地图符号库系统应当包括地图符号编辑一个完整的地图符号库系统应当包括地图符号编辑器、地图符号库管理系统和地图符号的再现调用。器、地图符号库管理系统和地图符号的再现调用。n符号编辑器用来制作生成符号编辑器用来制作

5、生成GIS需要的点状、线状和需要的点状、线状和面状地图符号;面状地图符号;n地图符号库管理系统负责地图符号的入库、管理和地图符号库管理系统负责地图符号的入库、管理和调用;调用; 一一 地图符号化地图符号化2 2 地图符号库地图符号库n地图符号库的构成地图符号的再现调用则是根据当前矢量数据的属性地图符号的再现调用则是根据当前矢量数据的属性编码,按照符号搭配表调用符号库中的对应符号来编码,按照符号搭配表调用符号库中的对应符号来符号化显示该层矢量数据。符号化显示该层矢量数据。 符号搭配表包括属性编码、符号代码和符号名称等符号搭配表包括属性编码、符号代码和符号名称等信息,其中符号代码作为库中符号的标识

6、,用来区别信息,其中符号代码作为库中符号的标识,用来区别各符号。各符号。一一 地图符号化地图符号化2 2 地图符号库地图符号库n地图符号库的设计 地图符号库的数据包括以下几个方面:基于应用的地地图符号库的数据包括以下几个方面:基于应用的地物分类的建立、符号库结构设计、符号的设计、符号物分类的建立、符号库结构设计、符号的设计、符号编辑功能的设计、符号的再现和使用,其中符号库结编辑功能的设计、符号的再现和使用,其中符号库结构设计是关键。构设计是关键。地图符号库点状符号表字段列表线状符号表字段列表面状符号表字段列表一一 地图符号化地图符号化2 2 地图符号库地图符号库n地图符号库的工作流程 地图符号

7、库的工作流地图符号库的工作流程就是按编码对照表程就是按编码对照表文件中建立的地物编文件中建立的地物编码与符号库中的符号码与符号库中的符号之间一一对应关系,之间一一对应关系,将制图输出范围内的将制图输出范围内的空间实体用指定符号空间实体用指定符号绘制并输出。绘制并输出。点状符号线状符号面状符号符号库符号搭配表空间数据符号化功能模块地图二二 ArcEngine环境下的地图符号化环境下的地图符号化 ArcEngine环境中提供了丰富的控件环境中提供了丰富的控件(SymbologyControl )和符号和符号组件来满足地图设计中的各种需求,这些组件包括组件来满足地图设计中的各种需求,这些组件包括Co

8、lor、 Renderer、Symbol三大系列。地图符号化就是通过多个组件三大系列。地图符号化就是通过多个组件对象间的合作来完成。对象间的合作来完成。n用用Color为要素配置显示颜色为要素配置显示颜色n用用Symbol表示实体要素表示实体要素n用用Renderer进行图层渲染进行图层渲染二二 ArcEngine环境下的地图符号化环境下的地图符号化1 1 Color系列系列Color的模型:的模型:RGB颜色模型:颜色模型:最常用,所有颜色都是通过红色(Red)、绿色(Green)、蓝色(Blue)这三原色的混合来显示。CMY颜色模型:颜色模型:青(Cyan)、洋红(Magenta)和黄(Y

9、ellow)三种颜色的简写。HSV颜色模型:颜色模型:色彩(H),纯度(S),明度(V)。Gray模型模型:没有彩色的,灰度图像由位信息组成,并使用256级的灰色来模拟颜色层次。HLS模型模型:常用,Hue(色相)、Luminance(亮度)、Saturation(饱和度)。 Color系列主要负责颜色的设置,提供各种形式的Color对象。二二 ArcEngine环境下的地图符号化环境下的地图符号化1 1 Color系列系列在地图符号化的过程中,需要的颜色常常不是一种,而是随在地图符号化的过程中,需要的颜色常常不是一种,而是随机或有序产生的一组颜色。如果对某一个图层进行符号化需机或有序产生的一

10、组颜色。如果对某一个图层进行符号化需要上百种颜色,程序开发者肯定不能逐个产生出来。要上百种颜色,程序开发者肯定不能逐个产生出来。ArcGIS Engine提供了提供了ColorRamp对象对象:二二 ArcEngine环境下的地图符号化环境下的地图符号化1 1 Color系列系列ColorRamp类的对象可以产生颜色带,这个类实现了类的对象可以产生颜色带,这个类实现了IColorRamp接口,接口,它定义了一系列颜色带的属性它定义了一系列颜色带的属性;ColorRamp类是一个抽象类,它包括类是一个抽象类,它包括4个个子类分别是:子类分别是:RandomColorRamp(随机颜色带(随机颜色

11、带)、PresetColorRamp(预设颜色带预设颜色带)、AlgorithmicColorRamp(起止颜色带(起止颜色带)、MultiPartColorRamp(叠加颜色带):(叠加颜色带):RandomColorRamp 使用使用HSV颜色模型来确定一串颜色颜色模型来确定一串颜色 PresetColorRamp 预设的颜色模式,可存储预设的颜色模式,可存储13种颜色种颜色 AlgorithmicColorRamp 用起始颜色、终止颜色确定一个颜色带用起始颜色、终止颜色确定一个颜色带MultiPartColorRamp 叠加产生颜色带叠加产生颜色带 二二 ArcEngine环境下的地图符

12、号化环境下的地图符号化1 1 Color系列系列二二 ArcEngine环境下的地图符号化环境下的地图符号化1 1 Color系列系列二二 ArcEngine环境下的地图符号化环境下的地图符号化1 1 Color系列系列private void button1_Click(object sender, EventArgs e)/创建一个新AlgorithmicColorRampClass对象IAlgorithmicColorRamp algColorRamp = new AlgorithmicColorRampClass();/创建起始颜色对象IRgbColor startColor = ne

13、w RgbColor();startColor.Red = 255;startColor.Green = 0;startColor.Blue = 0;/创建终止颜色对象IRgbColor endColor = new RgbColor();endColor.Red = 0;endColor.Green = 255;endColor.Blue = 0;/设置AlgorithmicColorRampClass的起止颜色属性algColorRamp.ToColor = startColor;algColorRamp.FromColor = endColor;/设置梯度类型algColorRamp.A

14、lgorithm = esriColorRampAlgorithm.esriCIELabAlgorithm;/设置颜色带颜色数量algColorRamp.Size = 5;/创建颜色带bool bture = true;algColorRamp.CreateRamp(out bture);/使用IEnumColors获取颜色带IEnumColors pEnumColors = null;pEnumColors = algColorRamp.Colors;/设置个picturebox的背景色为产生颜色带的个颜色this.pictureBox1.BackColor = ColorTranslato

15、r.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 = ColorT

16、ranslator.FromOle(pEnumColors.Next().RGB); 二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列SymbolMarkSymbolLineSymbolFillSymbol3DChartSymbolTextSymbol 点状要素符号化主要用到MarkerSymbol系列的组件类,它拥有十二个子类,其中不同的子类可以产生不同类型的点符号,所有的MarkerSymbol类都实现了IMarkerSymbol接口。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号二二

17、 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号点符号类型描述ArrowMarkerSymbol预定义的肩头符号BarChartSymbol柱状图符号CharacterMarker3DSymbol三维字体符号CharacterMarkerSymbol字体符号Marker3DSymbol3D 符号MultiLayerMarkerSymbol多个符号叠加产生新点符号PictureMarkerSymbol图片符号(bmp或emf)PiechartSymbol饼图符号SimpleMarker3DSymbol简单3D符号SimpleMarker

18、Symbol简单符号StackedChartSymbol堆叠符号TextMarkerSymbol文字符号用来符号化点 二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n常用的常用的5种类型种类型 IMarkerSymbol接口:主要负责符号的角度、颜色、大小、X方向、Y方向偏移的距离等。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口 ISimpleMarkerSymbol接口:从IMarkerSymbol接口继承过来,除具有IMarkerSymbo

19、l 所有属性和方法外,还具有自身特有的属性,负责对边框属性及符号本身形式的设置。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口 ICharacterMarkerSymbol接口:从IMarkerSymbol接口继承过来,除具有IMarkerSymbol所有属性和方法外,还具有自身特有的两个属性,用来设置特征标志的风格 。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口 IArrowMarkerSymbol接口:负责箭头标记符号的设

20、置。除具有IMarkerSymbol所有属性和方法外,还有三个属性,用于设定箭头标记符号的形式、长度和宽度的设置。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口pIPictureMarkerSymbol接口:负责使用位图或Windows的图元来表示点要素。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口 ImultiLayerMarkerSymbol接口:用于多个不同的MarkerSymbol组合成一个符号,可以包括多个层,每层都

21、可以有一个MarkerSymbol ,通过各层的叠加实现。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n主要接口主要接口 private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) IElement pElement; IMarkerElement pMarkerElement; ISimpleMarkerSymbol pSimpleMarkerSymbol;

22、IRgbColor pRgbColor; pSimpleMarkerSymbol = new SimpleMarkerSymbolClass(); pRgbColor = new RgbColorClass(); pRgbColor.Red = 255; pSimpleMarkerSymbol.Color = pRgbColor; pSimpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSDiamond; pMarkerElement = new MarkerElementClass(); pMarkerElement.Symbol =

23、pSimpleMarkerSymbol; pElement = new MarkerElement(); pElement = pMarkerElement as IElement; pElement.Geometry = axMapControl1.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(e.x, e.y); IGraphicsContainer pGraphicsContainer = axMapControl1.ActiveView.FocusMap as IGraphicsContainer; pGraphic

24、sContainer.AddElement(pElement, 0); axMapControl1.ActiveView.Refresh(); 二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n实例代码实例代码using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geometry; private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapContro

25、lEvents2_OnMouseDownEvent e) IActiveView pActiveView; ISimpleMarkerSymbol pSimpleMarkerSymbol; IRgbColor pRgbColor; IRubberBand pRubberBand; IPoint pPoint; pActiveView = axMapControl1.ActiveView; pSimpleMarkerSymbol = new SimpleMarkerSymbolClass(); pRgbColor = new RgbColorClass(); pRgbColor.Red = 25

26、5; pSimpleMarkerSymbol.Color = pRgbColor; pRubberBand = new RubberPointClass(); pPoint = pRubberBand.TrackNew(pActiveView.ScreenDisplay, pSimpleMarkerSymbol as ISymbol) as IPoint; pActiveView.ScreenDisplay.StartDrawing(pActiveView.ScreenDisplay.hDC, (short)esriScreenCache.esriNoScreenCache); pActive

27、View.ScreenDisplay.SetSymbol(pSimpleMarkerSymbol as ISymbol); pActiveView.ScreenDisplay.DrawPoint(pPoint); pActiveView.ScreenDisplay.FinishDrawing(); 二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列点状要素符号点状要素符号n实例代码实例代码using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geometry; 线状要素符号化

28、主要用到LineSymbol系列的组件类,LineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类,其中不同的子类可以产生不同类型的线符号,所有的LineSymbol类都实现了ILineSymbol接口, ILineSymbol定义了两个公共属性:Color和Width。2 2 Symbol系列系列线状要素符号线状要素符号二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状要素符号二二 ArcEngine环境下的地图符号化环境下的地图符号化线符号类型描述CartographicLineSymbol实心或者虚线线符号HashLine

29、Symbol离散线符号MarkerLineSymbol点线符号MultiLayerLineSymbol多符号叠加产生新线符号PictureLineSymbol图片线符号SimpleLine3DSymbol 3D 线符号SimpleLineSymbol预定义风格的线符号TextureLineSymbol (3DAnalyst)纹理贴 图线符号2 2 Symbol系列系列线状要素符号线状要素符号二二 ArcEngine环境下的地图符号化环境下的地图符号化n常用的常用的3种类型种类型 ILineSymbol接口:主要负责所有线型符号的两个通用属性:Color和Width。2 2 Symbol系列系列

30、线状要素符号线状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 ISimpleLineSymbol接口:从ILineSymbol接口继承过来,除具有ILineSymbol 的两个属性外,还具有自身特有的属性Style,负责线型的设置。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状要素符号n主要接口主要接口 ICartographicLineSymbol接口(实心或者虚线):该接口提供一些属性来实现点画线模式、带箭头的线等。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symb

31、ol系列系列线状要素符号线状要素符号n主要接口主要接口 IHashLineSymbol接口(离散线):负责设计点画线。点画线是用一组重复短线或斜线来表示的线要素。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状要素符号n主要接口主要接口 IMarkerLineSymbol接口(点线):使用重复的MarkerSymbol来设计线状符号。除具有ILineSymbol所具有的属性外,还具有MarkerSymbol的属性,用来设定MarkerLineSymbol 所使用的点状标记符号对象。二二 ArcEngine环境下的地图符号化环境下的地图符号

32、化2 2 Symbol系列系列线状要素符号线状要素符号n主要接口主要接口 IPictureLineSymbol接口(图片线):负责设计一种用图像填充的线型符号。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状要素符号n主要接口主要接口 ImultiLayerLineSymbol接口:实现组成多个图层的线符号。二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列线状要素符号线状

33、要素符号n实例代码实例代码 private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) IActiveView pActiveView; ISimpleLineSymbol pSimpleLineSymbol; IRgbColor pRgbColor; IRubberBand pRubberBand; IPolyline pPloyline; pActiveView = axMapControl1.ActiveView; pSi

34、mpleLineSymbol = new SimpleLineSymbolClass(); pRgbColor = new RgbColorClass(); pRgbColor.Red = 125; pSimpleLineSymbol.Color = pRgbColor; pRubberBand = new RubberLineClass(); pPloyline = pRubberBand.TrackNew(pActiveView.ScreenDisplay, pSimpleLineSymbol as ISymbol) as IPolyline; pActiveView.ScreenDisp

35、lay.StartDrawing(pActiveView.ScreenDisplay.hDC, (short)esriScreenCache.esriNoScreenCache); pActiveView.ScreenDisplay.SetSymbol(pSimpleLineSymbol as ISymbol); pActiveView.ScreenDisplay.DrawPolyline(pPloyline); pActiveView.ScreenDisplay.FinishDrawing(); 面状要素符号化主要用到FillSymbol系列的组件类,FillSymbol是用来修饰如多边形等

36、具有面积的几何形体的符号对象,它拥有十一个子类,它实现了IFillSymbol接口,这个接口定义了两个属性Color和OutLine,以满足所有类型的FillSymbol对象的公共属性设置。二二 ArcEngine环境下的地图符号化环境下的地图符号化填充符号类型描述ColorRampSymbol (Carto)用于渲染Raster数据的颜色带ColorSymbol (Carto)用于渲染Raster数据的颜色符号DotDensityFillSymbol点密度填充符号GradientFillSymbol渐变填充符号LineFillSymbol包含线符号的填充符号MarkerFillSymbol包

37、含点符号的填充符号MultiLayerFillSymbol多符号叠加产生新填充符号PictureFillSymbol图片填充符号RasterRGBSymbol用于渲染Raster数据RGBSymbolSimpleFillSymbol简单填充符号TextureFillSymbol纹理贴图填充符号二二 ArcEngine环境下的地图符号化环境下的地图符号化n常用的几种类型常用的几种类型二二 ArcEngine环境下的地图符号化环境下的地图符号化 IFillSymbol接口:主要负责所有面状符号的两个通用属性:Color和Outline。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口

38、主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 ISimpleFillSymbol接口:从IFillSymbol接口继承过来,除具有IFillSymbol 的两个属性外,还具有自身特有的属性Style,负责面状符号填充类型的设置。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 IMarkerFillSymbol接口:该接口使用重复的MarkerSymbol填充面。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号

39、化 ILineFillSymbol接口:包含线符号的填充符号 2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 IPictureFillSymbol接口:使用图片来填充面符号。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 IGradientFillSymbol接口:使用渐变颜色填充面符号。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 IDotD

40、ensityFillSymbol接口:点密度填充符号是一个与要素对象属性数据相关的填充符号,能通过点密度的大小表示属性数据的大小多少,常与DotDensityRenderer联合使用。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化 IMultiLayerFillSymbol接口:多符号叠加产生新填充符号。2 2 Symbol系列系列面状要素符号面状要素符号n主要接口主要接口二二 ArcEngine环境下的地图符号化环境下的地图符号化2 2 Symbol系列系列面状要素符号面状要素符号n实例代码实例代码二二 Ar

41、cEngine环境下的地图符号化环境下的地图符号化 private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e) IActiveView pActiveView; ISimpleFillSymbol pSimpleFillSymbol; IRgbColor pRgbColor; IRubberBand pRubberBand; IPolygon pPolygon; pActiveView = axMapControl1.Activ

42、eView; pSimpleFillSymbol = new SimpleFillSymbolClass(); pRgbColor = new RgbColorClass(); pRgbColor.Red = 250; pSimpleFillSymbol.Color = pRgbColor; pRubberBand = new RubberPolygonClass(); pPolygon = pRubberBand.TrackNew(pActiveView.ScreenDisplay, pSimpleFillSymbol as ISymbol) as IPolygon; pActiveView

43、.ScreenDisplay.StartDrawing(pActiveView.ScreenDisplay.hDC, (short)esriScreenCache.esriNoScreenCache); pActiveView.ScreenDisplay.SetSymbol(pSimpleFillSymbol as ISymbol); pActiveView.ScreenDisplay.DrawPolygon(pPolygon); pActiveView.ScreenDisplay.FinishDrawing(); 2 2 Symbol系列系列文本符号文本符号二二 ArcEngine环境下的地

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

45、排列方式、垂直排列方式和文本等内容。 2 2 Symbol系列系列三维对象符号三维对象符号二二 ArcEngine环境下的地图符号化环境下的地图符号化3DChartSymbol是一个抽象类,它拥有三个子类:BarChart、PieChart和StackedChart。 2 2 Symbol系列系列三维对象符号三维对象符号二二 ArcEngine环境下的地图符号化环境下的地图符号化BarChartSymbol是最常用的三维着色符号,它使用不同类型的柱子来代表一个要素类中不同的属性,而柱子的高度取决于属性值的大小。PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同

46、属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。n在制图过程中,常需要制作一些专题图,如分类图、分级图、统计图、点密度图等。专题图重点表示某个或某些信息,把这些数字的、内在的信息以及它们间的关系生动地表现在人们眼前,让读者快速直观的了解信息内容,达到辅助人们获取信息和挖掘知识的目的。n分为FeatureRender和RasterRender 二二 ArcEngine环境下的地图符号化环境下的地图符号化3 3 Render

47、er系列系列 FeatureRenderer是一种显示要素层的方法,根据要素的某个或者某些属性,设置和使用符号和颜色生动地显示各个要素。 FeatureRenderer本身是一个抽象类,它有15个子类负责进行不同类型的着色运算。它们都实现了IFeatureRenderer接口,这个接口定义了进行要素图层符号化的公共属性和方法。二二 ArcEngine环境下的地图符号化环境下的地图符号化3 3 Renderer系列系列FeatureRenderer3 3 Renderer系列系列FeatureRenderer要素符号化类型描述SimpleRender简单符号化UniqueValueRender唯

48、一值符号化BiUniqueValueRender双变量唯一值符号化ChartRender图表符号化ClassBreaksRenderer分类等级符号化DotDensityRenderer点密度符号化ProportionalSymbolRenderer根据属性值设置符号大小进行符号化ScaleDependentRenderer依比例尺符号化二二 ArcEngine环境下的地图符号化环境下的地图符号化3 3 Renderer系列系列FeatureRenderer要素符号化类型描述RepresentationRenderer制图表达符号化CoTrackSymbologyRenderer(Tracki

49、ngAnalyst)轨迹符号化(应用于TrackingAnaylyst扩展模块)EnhancedInfoRenderder(TrackingAnalyst)增强信息符号化(应用于TrackingAnaylyst扩展模块)UniqueValueTextRenderer(TrackingAnalyst)唯一值文本符号化(应用于TrackingAnaylyst扩展模块)NAStopRenderer(NetworkAnalyst)停止符号化(应用于网络分析扩展模块)FeatureVertexRenderer(SurveyExt)要素定点符号化(应用于测量分析扩展模块)SharedEdgeRendere

50、r(EditorExt)用于绘制拓扑元素二二 ArcEngine环境下的地图符号化环境下的地图符号化n常用的要素符号化类型主要有以下常用的要素符号化类型主要有以下6种类型种类型 3 3 Renderer系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化nFeatureRenderer:是所有其他FeatureRenderer类的基类,实现了FeatureRenderer系列的通用接口,提供FeatureRenderer系列通用的属性和方法。nSimpleRenderer组件类:可以对地图数据进行简单的符号化,使用它可以用点、线、面符号分别符号化地

51、图中的点状、线状、面状目标。nClassBreaksRenderer组件类:使用它可以根据要素的某个数值字段对要素进行分级表示,表达各个要素间顺序、间隔的或者比例的关系。n常用的要素符号化类型主要有以下常用的要素符号化类型主要有以下6种类型种类型 3 3 Renderer系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化nUniqueValueRenderer组件类:使用它可以根据要素的某个或某些属性值对地图中的要素进行分类、分级,然后为每个类别或者级别的要素配置相应的唯一的符号,从而实现对地图的符号化。可以使地图直观地表达要素之间的数量关系。n

52、DotDensityRenderer组件类:使用它可以制作点密度图。随机地在多边形要素上布置点,通过点的密度来表示数据信息。n常用的要素符号化类型主要有以下常用的要素符号化类型主要有以下6种类型种类型 3 3 Renderer系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化nScaleDependentRenderer组件类:可以保护别的FeatureRenderer,为不同的比例尺范围制定不同的FeatureRenderer。nChartRenderer组件类:用饼状、柱状符号来表达数量。n常用的要素符号化类型主要有以下常用的要素符号化类型主

53、要有以下6种类型种类型 3 3 Renderer系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化 SimpleRenderer可以对地图数据进行简单的符号化。符号匹配各层的几何目标:面符号用来填充面,线符号用来显示线,点符号用来表示点;点符号也可以用来表示面目标。点符号表示面目标时,放在面要素的几何中心位置。另外,点符号也可以设置旋转度,面符号可以设置透明度,旋转度和透明度可以由相关联的要素的属性来决定。SimpleRenderer基本可以表示一种简单的数量关系。n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer

54、系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化pIFeatureRenderer接口二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererpISimpleRenderer接口二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererpIRotationRenderer接口:控制点符号的旋转状态,旋转

55、角度大小取决于要素的某一字段值。二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererpITransparencyRenderer接口:控制面状符号的透明度,依据要素的某个字段设定透明度。二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererIGeoFeatureLayer pGeoFeatureLayer;ISimpleRenderer pSi

56、mpleRenderer;IFillSymbol pFillSymbol;ILineSymbol pLineSymbol;IRgbColor pRgbColor;pGeoFeatureLayer = axMapControl1.get_Layer(0) as IGeoFeatureLayer;pSimpleRenderer = new SimpleRendererClass();pFillSymbol = new SimpleFillSymbolClass();pLineSymbol = new SimpleLineSymbolClass();pRgbColor = new RgbColorC

57、lass();pRgbColor.Red = 250;pLineSymbol.Color = pRgbColor;pLineSymbol.Width = 2;pRgbColor.Red = 125;pFillSymbol.Color = pRgbColor;pFillSymbol.Outline = pLineSymbol;pSimpleRenderer.Symbol = pFillSymbol as ISymbol;pGeoFeatureLayer.Renderer = pSimpleRenderer as IFeatureRenderer;axMapControl1.Refresh();二

58、二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用SimpleRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererusing ESRI.ArcGIS.Display;using ESRI.ArcGIS.Carto;n根据要素的某个或者某些属性值对地图中的要素进行分类、分级,然后为每个类别或者级别的要素配置相应的惟一的符号。n在分类、分级的基础上,多个种类可以合并到一个类,给予惟一标识值,这对划分分类比较模糊的属性很有帮助。另外,当指定的分类、分级的依据是要素的多个属性时,也可以为多个字段组合指定惟一值。二二 ArcEngine环境

59、下的地图符号化环境下的地图符号化n使用使用UniqueValueRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRendererpIUniqueValueRenderer接口二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用UniqueValueRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化pIUniqueValueRenderer接口n使用使用UniqueValueRenderer组件符号化组件符号化3 3 Renderer系列

60、系列FeatureRenderer二二 ArcEngine环境下的地图符号化环境下的地图符号化n使用使用UniqueValueRenderer组件符号化组件符号化3 3 Renderer系列系列FeatureRenderern实例n需要一个点层的shapefile文件;nClassBreaksRenderer能够依据要素对象的数据字段,表示各要素对象间的数量关系:顺序关系、比例关系等。可以自己设定任意的分级标准,也可以使用Classify和TableHistogram来计算一些特定的分级,如“等分”。每一级都可以用一个符号来表示。nClassBreaksRenderer既可用于点状、面状要素,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论