您好,欢迎访问三七文档
AE开发之地图的显示如何使用颜色对象如何使用符号对象如何对要素进行着色以生成不同类型的专题图1.添加颜色—颜色对象ArcGIS提供的颜色模型有:RGB模型CMYK模型HSV模型Gray模型HLS模型Hue-色调Saturation-饱和度Value-明度1.1Color对象Color对象是一个抽象类,有5个颜色子类CMYKColor、RGBColor、HSVColor、HLSColor、GrayColor1.2ColorRamp对象ColorRamp类是一个抽象类,它包括4个子类分别是:RandomColorRamp(随机颜色带)PresetColorRamp(预设颜色带)AlgorithmicColorRamp(起止颜色带)MultiPartColorRamp(叠加颜色带)AlgorithmicColorRamp颜色带:通过起止颜色来确定多个在这两个颜色之间的色带。AlgorithmicColorRamp类实现了两个接口:IColorRamp和IAlgorithmicColorRamp,两个接口之间是接口继承关系,后者包含了前者所有的方法和属性。IRandomColorRamp颜色带:在UniqueBreak着色中系统使用的最多的是随机颜色。RandomColorRamp需要设定一个HSV颜色模型的范围,颜色将在这个范围内随机出现。2.图形的外观——Symbol对象ArcGISEngine9.3为开发人员提供了32种符号三大类符号来绘制地理要素的几何图形:MarkerSymbol、LineSymbol与FillSymbol此外还有两种特殊类型的符号:TextSymbol用于文字标注3DChart符号用于显示饼图等三维对象2.1MarkerSymbol对象MarkerSymbol对象是用于修饰点对象的符号它拥有12个子类,分别产生不同类型的点符号所有的MarkerSymbol类都实现了IMarkerSymbol接口这个接口定义了标记符号的公共方法和属性如角度、颜色、大小和X,Y偏移量等。SimpleMarkerSymbol简单类型的点状符号五种类型:Square、Cross、Circle、X、DiamondArrowMarkerSymbol箭头形式的符号Length属性:箭头的顶点到底边的距离Width属性:箭头底边的宽度Style属性:箭头符号样式,esriAMSPlainCharacterMarkerSymbol字符形式的符号CharacterIndex属性:通过ASCⅡ码确定字符PictureMarkerSymbol以图片为背景的符号PictureMarkerSymbol::CreateMarkerSymbolFromFile方法从磁盘上获取一张位图设置对象的Picture属性来将一张图片设置为点符号MultiLayerMarkerSymbol多个符号叠加生成新的符号2.2LineSymbol对象LineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类,其中不同的子类可以产生不同类型的线符号。ILineSymbol接口定义了两个公共属性:Color和WidthSimpleLineSymbol简单线符号主要属性是Style,用来确定线的形式,其拥有的线类型有7种。CartographicLineSymbol制图线符号:ICartographicLineSymbol接口主要用于设置线符号的节点属性,Cap属性用于设置线要素首尾端点的形状;Join属性用于设置线要素转折处的样式。MultiLayerLineSymbol多图层线符号:使用重叠符号的方法生成新的线符号。PictureLineSymbol图片线符号:可以将一条线对象通过一张位图图片表现出来,当系统需要设置非常特殊的线符号时可以使用这个对象来完成。2.3FillSymbol对象SimpleFillSymbol简单填充符号LineFillSymbol线填充符号MarkerFillSymbol点填充符号GradientFillSymbol渐变颜色填充符号PictureFillSymbol图片填充符号MultilayerFillSymbolDotDensityFillSymbol点密度填充符号2.4TextSymbol对象ITextSymbol接口是定义文本字符样式的主要接口,它定义的ITextSymbol::Font属性是产生一个TextSymbol符号的关键。可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性。使用ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。2.53DChartSymbol对象3DChartSymbol是一个抽象类,它拥有三个子类:BarChartPieChartStackedChart它本质上是一种Marker符号,一般用于ChartRenderer对象的着色,而且这个着色方法常常是基于多个属性的。BarChartSymbol是最常用的三维着色符号,它使用不同类型的柱子来代表一个要素类中不同的属性,而柱子的高度取决于属性值的大小。PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。StackedChartSymbol符号使用的柱是堆垒而成的。3使用ServerStyleArcGISDesktop中的Style符号库文件,在ArcGISEngine开发中对应的是ServerStyle符号库,其体系如下图所示:用于获取ServerStyle符号库中的符号主要涉及到以下接口如表所示:如何获取到一个符号库中符号?SymbologyControl控件用来显示ServerStyle符号库中的符号样式,可以选择在该控件上选择一个符号用来符号化一个图层或者作为一个Element的符号。使用SymbologyControl可以在设计的模式下在其属性页中加载ServerStyle符号库文件,同样也可以使用的LoadStyleFile和RemoveFile方法加载和移除Serverstyle符号库文件。4Renderer(渲染)体系矢量数据渲染FeatureRenderer是一个抽象类,它有15个子类负责进行不同类型的着色运算。它们都实现了IFeatureRenderer接口,这个接口定义了进行要素图层符号化的公共属性和方法。可以通过IGeoFeatureLayer::Renderer属性获得一个要素图层的符号化对象栅格数据渲染RasterRender是一个抽象类,它有6个子类负责进行不同类型的着色运算。它们都实现了IRasterRender接口,这个接口定义了栅格图层符号化的公共属性和方法。可以通过IRasterLayer::Renderer属性获得一个栅格图层的符号化对象。5制作专题图SimpleRenderer着色法此方式最为简单,不涉及对要素图层的数据处理。使用这种着色方法需要产生一个SimpleRenderer对象,然后将它的Symbol进行设置后赋值给IGeoFeaturelayer::Renderer即可。它的类还实现了ITransparencyRenderer接口,后者可以依据要素的某个数值字段的值来设置要素的显示透明度。ClassBreakRenderer着色法分级着色法需要获取要素图层的要素类中某个数值字段的值,根据用户的要求将这些值分为几个级别,由于每个级别的Symbol不同而显示出不同的外观。UniqueValueRenderer着色法这种方法产生的颜色数量是最多的,它依据要素图层的要素类中某个数值字段的值的不同而给每个要素一个单独的颜色。实现思路:寻找出要素图层中要素类的所有要素,然后使用IUniqueValueRenderer::AddValue方法将单个要素的某个字段值和与之相匹配的着色符号加入UniqueValueRenderer对象,再将新建的着色对象赋给要素图层的Renderer属性,刷新要素图层即可。ProportionalSymbolRenderer着色法梯度着色法依据要素图层的要素类中某个字段的数值而生成大小不一的圆形符号进行着色。通过IProportionalSymbolRenderer接口定义使用梯度着色法的方法和属性,这种着色方式需要知道最大和最小的圆点各自代表的字段值、着色基于的字段和着色点使用的符号。ChartRenderer着色法ChartRenderer对象使用饼图(PieChart)或柱状图(BarChart、StackedChart)来比较一个要素的多个属性。IChartRenderer接口定义了ChartSymbol方法,用于设置着色对象的着色符号、Lable属性等。这种着色方法需要获得被着色图层中的单个要素的一个或多个字段,这个任务需要使用RendererField对象来完成。实现了IRendererFields接口,通过使用AddField方法来添加进行比较的字段。DotDensityRenderer着色法使用DotDensityFillSymbol符号来对一个Polygon类型的要素图层进行着色。这种着色法根据随机分布的点的密度来表现要素的某个属性值的大小,而这些点的多少是由DotValue值来决定的。IDotDensityRenderer接口定义了使用点密度着色的方法和属性。IDotDensityRenderer::DotDensitySymbol用来确定着色的点符号。IDotDensityRenderer::CreateLegend方法用于产生图例。
本文标题:AE地图的显示表达
链接地址:https://www.777doc.com/doc-2896438 .html