Arcgis Symbol

ArcGIS Engine9.3为开发人员提供了32种符号,主要分为三大类符号MarkerSymbol(点符号)、 LineSymbol(线符号)和FillSymbol(填充符号)。此外还有两种特殊类型的符号:一种是TextSymbol用于文字标注;另一种是3D Chart符号,用于显示饼图等三维对象。


1.MarkerSymbol对象
  MarkerSymbol用于修饰点对象的符号,它拥有十三个子类,其中不同的子类可以产生不同类型的点符号。所有的MarkerSymbol类都实现了IMarkerSymbol接口,这个接口定义了标记符号的公共方法和属性,如角度、颜色、大小和X,Y偏移量等。

点符号类型 描述
ArrowMarkerSymbol
预定义的箭头符号
BarChartSymbol
柱状图符号
CharacterMarker3DSymbol
三维字体符号
CharacterMarkerSymbol
字体符号
Marker3DSymbol
3D 符号
MultiLayerMarkerSymbol
多个符号叠加产生新点符号
PictureMarkerSymbol
图片符号(bmpemf)
PiechartSymbol
饼图符号
SimpleMarker3DSymbol
简单3D符号
SimpleMarkerSymbol
简单符号
StackedChartSymbol
堆叠符号
TextMarkerSymbol
文字符号用来符号化点  

//创建SimpleMarkerSymbolClass对象

ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();

//创建RgbColorClass对象为pSimpleMarkerSymbol设置颜色

IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;

pSimpleMarkerSymbol.Color = pRgbColor
 as IColor;

//设置pSimpleMarkerSymbol对象的符号类型,选择钻石
pSimpleMarkerSymbol.Style =
 esriSimpleMarkerStyle.esriSMSDiamond;

//设置pSimpleMarkerSymbol对象大小,设置为5
pSimpleMarkerSymbol.Size = 5;

//显示外框线
pSimpleMarkerSymbol.Outline =
 true;

//为外框线设置颜色

IRgbColor pLineRgbColor = new RgbColorClass();
pLineRgbColor.Green = 255;

pSimpleMarkerSymbol.OutlineColor = pLineRgbColor
 as IColor;

//设置外框线的宽度

pSimpleMarkerSymbol.OutlineSize = 1; 

 

2.LineSymbol对象

LineSymbol对象是用于修饰线型几何对象的符号,它拥有八个子类,其中不同的子类可以产生不同类型的线符号,所有的LineSymbol类都实现了ILineSymbol接口, ILineSymbol定义了两个公共属性:Color和Width。

线符号类型
描述
CartographicLineSymbol
实心或者虚线线符号
HashLineSymbol
离散线符号
MarkerLineSymbol
点线符号
MultiLayerLineSymbol
多符号叠加产生新线符号
PictureLineSymbol
图片线符号
SimpleLine3DSymbol
3D 线符号
SimpleLineSymbol
预定义风格的线符号
TextureLineSymbol (3DAnalyst)
纹理贴 图线符号

IArrowMarkerSymbol   pArrowMarker = new ArrowMarkerSymbolClass();

 

IRgbColor pRgbColor = new RgbColorClass();
pRgbColor.Red = 255;

pArrowMarker.Color = pRgbColor
 as IColor; 
pArrowMarker.Length = 10;

pArrowMarker.Width = 8;

pArrowMarker.Style =
 esriArrowMarkerStyle.esriAMSPlain;

IMarkerLineSymbol pMarkerLine = new MarkerLineSymbolClass();
pMarkerLine.MarkerSymbol = arrowMarker;

IRgbColor pLineColor = new RgbColorClass();
pLineColor.Blue = 255;

pMarkerLine.Color = pLineColor
 as IColor;


3.FillSymbol对象

FillSymbol是用来修饰如多边形等具有面积的几何形体的符号对象,它拥有十一个子类如表4所示它实现了IFillSymbol,这个接口定义了两个属性Color和OutLine,以满足所有类型的FillSymbol对象的公共属性设置。

填充符号类型
描述
ColorRampSymbol (Carto)
用于渲染Raster数据的颜色带
ColorSymbol (Carto)
用于渲染Raster数据的颜色符号
DotDensityFillSymbol
点密度填充符号
GradientFillSymbol
渐变填充符号
LineFillSymbol
包含线符号的填充符号
MarkerFillSymbol
包含点符号的填充符号
MultiLayerFillSymbol
多符号叠加产生新填充符号
PictureFillSymbol
图片填充符号
RasterRGBSymbol
用于渲染Raster数据 RGBSymbol
SimpleFillSymbol
简单填充符号
TextureFillSymbol
纹理贴图填充符号
以MarkerLineSymbol构建为例演示如何创建一个线符号:

// 为填充符号创建外框线符号

IColor pLineColor = new RgbColorClass();

ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();

pCartoLineSymbol.Width = 2;

pCartoLineSymbol.Color = pLineColor;

//创建一个填充符号

ISimpleFillSymbol pSmplFillSymbol = new SimpleFillSymbol();

//设置填充符号的属性

IColor pRgbClr = new RgbColorClass();

IFillSymbol pFillSymbol = pSmplFillSymbol;

pFillSymbol.Color = pRgbClr;

pFillSymbol.Outline = pCartoLineSymbol;

4.TextSymbol对象
TextSymbol对象是用于修饰文字元素的,文字元素在要素标注等方面很有用处。TextSymbol符号最重要的设置对象是它的字符,它实现了三个主要的接口来设置字符:ITextSymbol 、 ISimpleTextSymbol 和 IFormattedTextSymbol 。

ITextSymbol接口是定义文本字符样式的主要接口,它定义的ITextSymbol::Font属性是产生一个TextSymbol符号的关键。可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性。使用ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。

以下是一个构建TextSymbol的函数:
///<summary>

///生成文本符号

///</summary>

///<param name="pTxtSymbol">文本符号</param>

///<param name="sFontName">字体名称</param>

///<param name="iFont">字体大小</param>

///<param name="iColor">字体颜色</param>

public static void MakeTextSymbol(ref ITextSymbol pTxtSymbol, string sFontName, int iFont, int iColor)

{try
{

pTxtSymbol.Font.Name = sFontName;

pTxtSymbol.Font.Size = (decimal)iFont;

IRgbColor pRGBColor = new RgbColorClass();

pRGBColor.RGB = iColor;

pTxtSymbol.Color = (IColor)pRGBColor;

pTxtSymbol.Angle = 0;

pTxtSymbol.RightToLeft = false;

pTxtSymbol.HorizontalAlignment = esriTextHorizontalAlignment.esriTHACenter;

pTxtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABaseline;

}

catch (Exception Err)
{

MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}


5. 3DChartSymbol对象
3DChartSymbol是一个抽象类,它拥有三个子类:BarChart、PieChart和StackedChart。BarChartSymbol是最常用的三维着色符号,它使用不同类型的柱子来代表一个要素类中不同的属性,而柱子的高度取决于属性值的大小。

PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。

PieChartSymbol符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。

猜你喜欢

转载自hanyi366.iteye.com/blog/1478088