符號化Symbol(符號)體系


符號化Symbol(符號)體系

ArcGIS Engine9.3為開發人員提供了32種符號,主要分為三大類符號MarkerSymbol(點符號)、 LineSymbol(線符號)和FillSymbol(填充符號)來繪制地理要素的幾何圖形。此外還有兩種特殊類型的符號:一種是TextSymbol用於文字標注;另一種是3D Chart符號,用於顯示餅圖等三維對象,如需詳細了解請查找幫助文檔。

1. MarkerSymbol對象

MarkerSymbol用於修飾點對象的符號,它擁有十三個子類如表2所示,其中不同的子類可以產生不同類型的點符號。所有的MarkerSymbol類都實現了IMarkerSymbol接口,這個接口定義了標記符號的公共方法和屬性,如角度、顏色、大小和X,Y偏移量等

表二

 

點符號類型

描述

ArrowMarkerSymbol

預定義的肩頭符號

BarChartSymbol

柱狀圖符號

CharacterMarker3DSymbol

三維字體符號

CharacterMarkerSymbol

字體符號

Marker3DSymbol

3D 符號

MultiLayerMarkerSymbol

多個符號疊加產生新點符號

PictureMarkerSymbol

圖片符號(bmp或emf)

PiechartSymbol

餅圖符號

SimpleMarker3DSymbol

簡單3D符號

SimpleMarkerSymbol

簡單符號

StackedChartSymbol

堆疊符號

TextMarkerSymbol

文字符號用來符號化點  

常用的有以下5種 類型:

如何創建MarkerSymbol?接下來以SimpleMarkerSymbol構建為例演示如何創建一個點符號:


//創建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;


如何使用這個符號,在接下來介紹Renderer對象的時候將為大家演示如何用創建的點符號去符號化一個圖層。


2. LineSymbol對象

LineSymbol對象是用於修飾線型幾何對象的符號,它擁有八個子類如表3所示,其中不同的子類可以產生不同類型的線符號,所有的LineSymbol類都實現了ILineSymbol接口, ILineSymbol定義了兩個公共屬性:Color和Width。

表三

 

線符號類型

描述

CartographicLineSymbol

實心或者虛線線符號

HashLineSymbol

離散線符號

MarkerLineSymbol

點線符號

MultiLayerLineSymbol

多符號疊加產生新線符號

PictureLineSymbol

圖片線符號

SimpleLine3DSymbol 

3D 線符號

SimpleLineSymbol

預定義風格的線符號

TextureLineSymbol (3DAnalyst)

紋理貼 圖線符號

常用的LineSymbol如下圖所示:

 

符號化Symbol(符號)體系

ArcGIS Engine9.3為開發人員提供了32種符號,主要分為三大類符號MarkerSymbol(點符號)、 LineSymbol(線符號)和FillSymbol(填充符號)來繪制地理要素的幾何圖形。此外還有兩種特殊類型的符號:一種是TextSymbol用於文字標注;另一種是3D Chart符號,用於顯示餅圖等三維對象,如需詳細了解請查找幫助文檔。

1. MarkerSymbol對象

MarkerSymbol用於修飾點對象的符號,它擁有十三個子類如表2所示,其中不同的子類可以產生不同類型的點符號。所有的MarkerSymbol類都實現了IMarkerSymbol接口,這個接口定義了標記符號的公共方法和屬性,如角度、顏色、大小和X,Y偏移量等

表二

 

點符號類型

描述

ArrowMarkerSymbol

預定義的肩頭符號

BarChartSymbol

柱狀圖符號

CharacterMarker3DSymbol

三維字體符號

CharacterMarkerSymbol

字體符號

Marker3DSymbol

3D 符號

MultiLayerMarkerSymbol

多個符號疊加產生新點符號

PictureMarkerSymbol

圖片符號(bmp或emf)

PiechartSymbol

餅圖符號

SimpleMarker3DSymbol

簡單3D符號

SimpleMarkerSymbol

簡單符號

StackedChartSymbol

堆疊符號

TextMarkerSymbol

文字符號用來符號化點  

常用的有以下5種 類型:

 

如何創建MarkerSymbol?接下來以SimpleMarkerSymbol構建為例演示如何創建一個點符號:


//創建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;


如何使用這個符號,在接下來介紹Renderer對象的時候將為大家演示如何用創建的點符號去符號化一個圖層。


2. LineSymbol對象

LineSymbol對象是用於修飾線型幾何對象的符號,它擁有八個子類如表3所示,其中不同的子類可以產生不同類型的線符號,所有的LineSymbol類都實現了ILineSymbol接口, ILineSymbol定義了兩個公共屬性:Color和Width。

表三

 

線符號類型

描述

CartographicLineSymbol

實心或者虛線線符號

HashLineSymbol

離散線符號

MarkerLineSymbol

點線符號

MultiLayerLineSymbol

多符號疊加產生新線符號

PictureLineSymbol

圖片線符號

SimpleLine3DSymbol 

3D 線符號

SimpleLineSymbol

預定義風格的線符號

TextureLineSymbol (3DAnalyst)

紋理貼 圖線符號

常用的LineSymbol如下圖所示:

如何創建LineSymbol?接下來以MarkerLineSymbol構建為例演示如何創建一個線符號:


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

紋理貼圖填充符號

常用的FillSymbol如下圖所示:

如何創建FillSymbol?接下來以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;

如果沒有ArcGIS Desktop使用經驗的開發看了以上代碼片段會一頭霧水,不明白填充符號的創建為什么還要創建線符號等等,如果有ArcGIS Desktop使用經驗就會非常容易理解這些符號的創建的機制,如圖8是SimpleFillSymbol設置信息。所以熟悉ArcGIS Desktop的使用對開發人員進行ArcGIS Engine開發非常有用。

 

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

至於如何創建這些3DChartSymbol符號這里不再提供代碼片段演示,讀者可以根據前邊學習的知識,自己操作ArcGIS Desktop使用3DChartSymbol制作專題圖,然后根據ArcGIS Engine的幫助文檔開發創建3DChartSymbol。

 

 

 

 

 

 

 

 

 

 

 

使用ServerStyle

如果熟悉ArcGIS Desktop的使用,就會對Style符號庫文件有所了解,相對應的在ArcGIS Engine開發中對應的是ServerStyle符號庫,它的結構體系如下圖所示。可以通過專門的轉換程序把ArcGIS Desktop Style符號庫轉換為ArcGIS Engine所能夠使用的ServerStyle符號庫。
用於獲取ServerStyle符號庫中的符號主要涉及到以下接口如表所示:

 

接口名稱

功能描述

IStyleGallery

用於管理Style Gallery

IStyleGalleryStorage

管理Style Gallery中的符號庫文件

IStyleGalleryClass

控制符號庫中Style Gallery Class

IEnumStyleGalleryItem

枚舉一組Style Gallery items

IStyleGalleryItem

定義Style Galle ry itme

4.5.1獲取符號庫中符號

如何獲取到一個符號庫中符號?接下來以獲取ESRI符號庫中名稱為Rose的符號的流程:

1.首先構建一個ServerStyleGallery對象
2.其次使用IStyleGalleryStorage接口的AddFile方法加載ServerStyle文件
3.遍歷ServerGallery中的Class,如果是FillSymbol使用IStyleGallery的GetItems方法返回一個可枚舉的包含一系列StyleGalleryItem的EnumStyleGalleryItem對象。
4.遍歷EnumServerStyleGalleryItme枚舉對象中的StylegalleryItme如果名稱是Rose即可獲取ESRI符號庫中名稱為Rose的StylegalleryItme,然后通過IStyleGalleryItem的Item屬性即可轉換為ISymbol。

整個流程圖如下圖所示:

 

SymbologyControl控件

SymbologyControl用來顯示ServerStyle符號庫中的符號樣式,可以選擇在該控件上選擇一個符號用來符號化一個圖層或者作為一個Element的符號。使用SymbologyControl可以再設計的模式下在其屬性頁中加載ServerStyle符號庫文件,同樣也可以使用的LoadStyleFile和RemoveFile方法加載和移除Serverstyle符號庫文件。運行效果如下圖所示:

 

符號化之Renderer( 渲染)體系

ArcGIS Engine9.3對GIS數據的符號化分為矢量數據渲染和柵格數據渲染兩大類。接下來分別介紹FeatureRender和RasterRender。

1. FeatureRender對象

FeatureRenderer是一個抽象類,它有15個子類負責進行不同類型的着色運算。它們都實現了IFeatureRenderer接口,這個接口定義了進行要素圖層符號化的公共屬性和方法。

可以通過IGeoFeatureLayer::Renderer屬性獲得一個要素圖層的符號化對象

表四

 

要素符號化類型

描述

SimpleRender

簡單符號化

UniqueValueRender

唯一值符號化

BiUniqueValueRender

雙變量唯一值符號化

ChartRender

圖表符號化

ClassBreaksRenderer

分類等級符號化

DotDensityRenderer

點密度符號化

ProportionalSymbolRenderer

根據屬性值設置符號大小進行符號化

ScaleDependentRenderer

依比例尺符號化

RepresentationRenderer

制圖表達符號化

CoTrackSymbologyRenderer(TrackingAnalyst)

軌跡符號化(應用於TrackingAnaylyst擴展模塊)

EnhancedInfoRenderder(TrackingAnalyst)

增強信息符號化(應用於TrackingAnaylyst擴展模塊)

UniqueValueTextRenderer(TrackingAnalyst)

唯一值文本符號化(應用於TrackingAnaylyst擴展模塊)

NAStopRenderer(NetworkAnalyst)

停止符號化(應用於網絡分析擴展模塊)

FeatureVertexRenderer(SurveyExt)

要素定點符號化(應用於測量分析擴展模塊)

SharedEdgeRenderer(EditorExt)

用於繪制拓撲元素


常用的要素符號化類型主要有以下6種類型,如下圖所示:

 

2. RasterRender對象

RasterRender是一個抽象類,它有15個子類負責進行不同類型的着色運算。它們都實現了IRasterRender接口,這個接口定義了柵格圖層符號化的公共屬性和方法。可以通過IRasterLayer::Renderer屬性獲得一個柵格圖層的符號化對象。

要素符號化類型

描述

RasterRGBRenderer

柵格RGB符號化

RasterUniqueValueRenderer

唯一值符號化

RasterColormapRenderer

雙變量唯一值符號化

RasterClassifyColorRampRenderer

圖表符號化

RasterStretchColorRampRenderer

分類等級符號化

RasterDiscreteColorRenderer

點密度 符號化

柵格符號化類型結構圖如下圖所示:

 

以下代碼片段是對一個RasterLayer進行RasterStretchColorRampRenderer符號化操作:


///<summary>

/// StretchColorRamp符號化RasterLayer

///</summary>

///<param name="pRasterLayer">RasterLayer</param>

public void SetStretchColorRampRenderer(IRasterLayer pRasterLayer)
{

try
{

//創建RasterStretchColorRampRendererClass對象

IRasterStretchColorRampRenderer pRStretchRender= new RasterStretchColorRampRendererClass();

//QI到IRasterRenderer

IRasterRenderer pRasterRender=pRStretchRender as IRasterRenderer;
pRasterRender.Raster = pRasterLayer as IRaster;

pRasterRender.Update();

//創建兩個起始顏色

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

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

//創建起止顏色帶

IAlgorithmicColorRamp pAlgorithmicColorRamp = new AlgorithmicColorRampClass();
pAlgorithmicColorRamp.Size = 255;
pAlgorithmicColorRamp.FromColor = pFromRgbColor as IColor;
pAlgorithmicColorRamp.ToColor = pToRgbColor as IColor;

bool btrue= true;
pAlgorithmicColorRamp.CreateRamp(out btrue);

//選擇拉伸顏色帶符號化的波段
pRStretchRender.BandIndex = 0;

//設置拉伸顏色帶符號化所采用的顏色帶
pRStretchRender.ColorRamp = pAlgorithmicColorRamp as IColorRamp;
pRasterRender.Update();

//符號化RasterLayer
pRasterLayer.Renderer = pRasterRender;


}

catch(Exception Err)
{

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

 

 

ArcGIS Engine開發 --圖層符號化(四)

 

利用ESRI自帶的符號庫進行唯一值符號化一圖層開發實例

實現唯一值符號化功能代碼如下:

///<summary>

///獲取符號庫中符號

///</summary>

///<param name="sServerStylePath">符號庫全路徑名稱</param>

///<param name="sGalleryClassName">GalleryClass名稱</param>

///<param name="symbolName">符號名稱</param>

///<returns>符號</returns>

private ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
{

try
{

//ServerStyleGallery對象

IStyleGallery pStyleGaller = new ServerStyleGalleryClass();

IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;

IEnumStyleGalleryItem pEnumSyleGalleryItem=null;

IStyleGalleryItem pStyleGallerItem = null;

IStyleGalleryClass pStyleGalleryClass = null;

//使用IStyleGalleryStorage接口的AddFile方法加載ServerStyle文件

pStyleGalleryStorage.AddFile(sServerStylePath);

//遍歷ServerGallery中的Class

for (int i = 0; i < pStyleGaller.ClassCount; i++)
{
pStyleGalleryClass = pStyleGaller.get_Class(i);

if (pStyleGalleryClass.Name != sGalleryClassName)

    continue;

//獲取EnumStyleGalleryItem對象
pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");
pEnumSyleGalleryItem.Reset();

//遍歷pEnumSyleGalleryItem
pStyleGallerItem = pEnumSyleGalleryItem.Next();

while (pStyleGallerItem != null)

{
if (pStyleGallerItem.Name == symbolName)
{

//獲取符號

ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;
System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
return pSymbol;
}
pStyleGallerItem = pEnumSyleGalleryItem.Next();
}

}

System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);

return null;
}

catch (Exception Err)

{

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

return null;
}
}

///<summary>

///設置要素圖層唯一值符號化

///</summary>

///<param name="pFeatureLayer"></param>

private void UniqueValueRenderFlyr(IFeatureLayer pFeatureLayer)

{

try
{

//創建UniqueValueRendererClass對象

IUniqueValueRenderer pUVRender = new UniqueValueRendererClass();

List<string> pFieldValues= new List<string>();
pFieldValues.Add("Hospital 2");
pFieldValues.Add("School 1");
pFieldValues.Add("Airport");

for(int i=0;i<pFieldValues.Count;i++)
{

    ISymbol pSymbol= new SimpleMarkerSymbolClass();
    pSymbol =GetSymbol(@"C:\Program Files\ArcGIS\Styles\ESRI.ServerStyle","Marker Symbols",pFieldValues[i])

//添加唯一值符號化字段值和相對應的符號
pUVRender.AddValue(pFieldValues,pFieldValues,pSymbol);
}

//設置唯一值符號化的字段個數和字段名
pUVRender.FieldCount = 1;

pUVRender.set_Field(0, "類別");

IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer;

//設置IGeofeatureLayer的Renderer屬性
pGFeatureLyr.Renderer = pUVRender as IFeatureRenderer;
}

catch (Exception Err)
{

MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void button1_Click(object sender, EventArgs e)
{

IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer(0) as IFeatureLayer;

UniqueValueRenderFlyr(pFeatureLayer);

this.axMapControl1.Refresh();
}

設計GIS系統符號化模塊

大家首先有個觀念:用ArcEngine開發C/S應用程序時,一個成熟的GIS項目在加載數據這方面是不允許直接把SDE里邊的數據以MXD的形式組織起來這是不科學的,原因如下:

1.從數據安全性考慮

一個MXD文檔包含了SDE數據庫里與MXD數據的詳細信息,通常對於數據擁有者來說是不希望外部能夠獲取這些信息的。

2.從系統靈活性考慮
通過程序動態加載所需同層,動態符號化相關圖層能夠為程序帶來很大的靈活性,例如根據不同的用戶的權限從數據庫加載不同的數據,符號化不同的圖層等等。習慣直接在MapControl上Load MXD File的就會有疑問,不通過MXD怎么展現圖層的符號化。

接下來我將從兩種途徑給大家介紹一下如果動態符號化圖層:

使用ArcEngine開發C/S應用程序數據加載一個重要的功能模塊,在數據加載模塊符號圖層是其技術核心之一:

1. 通過系統符號化配置表存儲圖層符號化信息符號化圖層。

首先在關系型數據庫中創建一個圖層符號化配置表詳細記錄每一個圖層的符號化信息,如下表(我只列出簡單符號化的配置表設計,至於唯一值等大家可以自己根據需求設計):

圖層ID

符號化類型

符號庫ID 

符號名稱

符號類型

點圖層1

簡單符號化

1

火車站

線圖層1

簡單符號化

2

鐵路線

面圖層1

簡單符號化

3

綠色面

然后使用ArcEngine提供的每種符號化類型的接口對圖層進行符號化渲染。

2. 通過ArcEngine提供的Represatation存儲要素符號化

Representation是ArcGIS9.3的新特性,能夠通過Representation制作更精美,更復雜的地圖操作過程,下圖是ArcGIS Desktop中Repre sentation工具條。

 

通過一下操作可以把通過Representation工具條制作出來的地圖效果存儲在要素類中(只能是Geodat abase類型的)。

 

 

從以上可以看出每一個要素的符號化信息都以Blob方式存儲在相對應的數據表中,這樣就不需要通過配置表的設置進行動態符號化,直接通過Engine中提供的與Representation相關的接口和類符號化每一個圖層。

 文章來源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM