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符號進行着色的方法是使用一個餅圖來顯示不同要素類中的不同屬性,不同的屬性按照它們的數值大小佔有一個餅圖中的不同比例的扇形區域。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章