ARCGIS Symbol

Arcgie Engine 的符号,主要分为三大类符号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();

RgbColor pRgbColor  = new RgbColorClass();
pRgbColor.Red = 255;
pArrowMarker.Color = pRgbColor
asIColor;
pArrowMarker.Length = 10;
pArrowMarker.Width = 8;
pArrowMarker.Style =
esriArrowMarkerStyle.esriAMSPlain;

IMarkerLineSymbolpMarkerLine = newMarkerLineSymbolClass();
pMarkerLine.MarkerSymbol = arrowMarker;

IRgbColorpLineColor = newRgbColorClass();
pLineColor.Blue = 255;
pMarkerLine.Color = pLineColor
asIColor;

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对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。

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

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

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

ITextSymbol接口是定义文本字符样式的主要接口,它定义的ITextSymbol::Font属性是产生一个TextSymbol符号的关键。可以使用IFontDisp接口来设置字体的大小和是否是粗体、倾斜等属性。使用ITextSymbol接口还可以定义TextSymbol对象的颜色、角度、水平排列方式、垂直排列方式和文本等内容。
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符号进行着色的方法是使用一个饼图来显示不同要素类中的不同属性,不同的属性按照它们的数值大小占有一个饼图中的不同比例的扇形区域。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值