符号化Symbol(符号)体系(转载)
? 轉自:http://blog.sina.com.cn/s/blog_4ce8fd7c0100h4lt.html
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 | 圖片符號(bmp或emf) |
| 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符號進行著色的方法是使用一個餅圖來顯示不同要素類中的不同屬性,不同的屬性按照它們的數值大小占有一個餅圖中的不同比例的扇形區域。
轉載于:https://www.cnblogs.com/Joetao/articles/5543926.html
總結
以上是生活随笔為你收集整理的符号化Symbol(符号)体系(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP/IP编程之SO_REUSEADD
- 下一篇: Linux系统编程8:入门篇之简单明了说