ArcEngine提供多個着色對象用於產生專題圖,可以使用標准着色方案,也可以自定義着色方案,ArcEngine提供8中標准着色方案。
一、SimpleRenderer專題圖
是使用單一符號進行着色分類,不涉及對要素的數據進行處理。這種專題圖同一個圖層內的所有元素都是一種符號。
通過SimpleRenderer對象對Symbol進行設置后,賦予IGeoFeatureLayer接口的Renderer屬性,對象實現了ITransparencyRenerer接口,通過該接口的屬性,可以根據要素的某一個數值字段來設置要素顯示的透明度。
該對象還實現了ISimpleRenderer接口,提供了兩個重要的屬性:Description和Label這兩個屬性用來設置圖例。
/// <summary> /// 簡單渲染 /// </summary> /// <param name="layerName">圖層名字</param> /// <param name="FillStyle">FillStyle</param> /// <param name="pColor">FillColor</param> /// <param name="OutLineColor">OutLineColor</param> /// <param name="RenderLabel">樣式名稱注釋</param> /// <param name="Descripition">描述</param> public void createSimpleFillSymbol(string layerName,esriSimpleFillStyle FillStyle,IColor pColor,IColor OutLineColor,string RenderLabel,string Descripition) { //簡單填充符號 ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass(); //可以用符號選擇器進行 simpleFillSymbol.Style = FillStyle; simpleFillSymbol.Color = pColor; //創建邊線符號 ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbolClass(); simpleLineSymbol.Style = esriSimpleLineStyle.esriSLSSolid; simpleLineSymbol.Color = OutLineColor; ISymbol symbol = simpleLineSymbol as ISymbol; symbol.ROP2 = esriRasterOpCode.esriROPNotXOrPen; simpleFillSymbol.Outline = simpleLineSymbol; ISimpleRenderer simpleRender = new SimpleRendererClass(); simpleRender.Symbol = simpleFillSymbol as ISymbol; simpleRender.Label = RenderLabel; simpleRender.Description = Descripition; IGeoFeatureLayer geoFeatureLayer; geoFeatureLayer = getGeoLayer(layerName); if (geoFeatureLayer != null) { geoFeatureLayer.Renderer = simpleRender as IFeatureRenderer; } }
二、ClassBreakRenderer專題圖
為分級專題圖,通過要素圖層中要素的某個數值字段的值,根據用戶要求,將這些值分為多個級別,每個級別用不同的Symbol顯示。
該對象實現了IClassBreakRenderer接口,提供了實現分級顯示的屬性和方法,如Field屬性用於設置分級着色的字段,BreakCount屬性用於設置分級的數目。
/// <summary> /// 分級渲染 /// </summary> /// <param name="layerName">圖層名</param> /// <param name="classCount">分級數目</param> /// <param name="ClassField">分級字段</param> /// <param name="FillStyle">填充樣式</param> public void createClassBreakRender(string layerName, int classCount, string ClassField, esriSimpleFillStyle FillStyle) { //int classCount = 6; ITableHistogram tableHistogram;//表格直方圖 IBasicHistogram basicHistogram;//Provides access to members that control histogram objects created from different data sources. ITable table; IGeoFeatureLayer geoFeatureLayer; geoFeatureLayer = getGeoLayer(layerName); ILayer layer = geoFeatureLayer as ILayer; table = layer as ITable; tableHistogram = new BasicTableHistogramClass(); //按照 數值字段分級 tableHistogram.Table = table; tableHistogram.Field = ClassField; basicHistogram = tableHistogram as IBasicHistogram; object values; object frequencys; //先統計每個值和各個值出現的次數 basicHistogram.GetHistogram(out values, out frequencys); //創建平均分級對象 IClassifyGEN classifyGEN = new QuantileClass(); //用統計結果進行分級 ,級別數目為classCount classifyGEN.Classify(values, frequencys, ref classCount); //獲得分級結果,是個 雙精度類型數組 double[] classes; classes = classifyGEN.ClassBreaks as double[]; //定義不同等級渲染的色帶用色 IEnumColors enumColors = CreateAlgorithmicColorRamp(classes.Length).Colors; IColor color; IClassBreaksRenderer classBreaksRenderer = new ClassBreaksRendererClass(); classBreaksRenderer.Field = ClassField; classBreaksRenderer.BreakCount = classCount;//分級數目 classBreaksRenderer.SortClassesAscending = true;//定義分類是否在TOC中顯示Legend ISimpleFillSymbol simpleFillSymbol; for (int i = 0; i < classes.Length - 1; i++) { color = enumColors.Next(); simpleFillSymbol = new SimpleFillSymbolClass(); simpleFillSymbol.Color = color; simpleFillSymbol.Style = FillStyle; classBreaksRenderer.set_Symbol(i, simpleFillSymbol as ISymbol); classBreaksRenderer.set_Break(i, classes[i]); } if (geoFeatureLayer != null) { geoFeatureLayer.Renderer = classBreaksRenderer as IFeatureRenderer; } }
三、UniqueValueRenderer專題圖
是依據要素圖層中的某個字段的不同值,給每個要素一個單獨的顏色,以區分存在的每一個要素。
UniqueValueRenderer實現了IUniqueValueRenderer接口,提供了各種屬性和方法,如AddValue方法用於將單個要素的某個字段值和與之相匹配的着色符號加入到UniqueValueRenderer對象。
/// <summary> /// 單一值渲染(單字段) /// </summary> /// <param name="layerName">圖層名</param> /// <param name="RenderField">渲染字段</param> /// <param name="FillStyle">填充樣式</param> /// <param name="valueCount">字段的唯一值個數</param> public void createUniqueValueRander(string layerName, string RenderField, esriSimpleFillStyle FillStyle,int valueCount) { IGeoFeatureLayer geoFeatureLayer; geoFeatureLayer = getGeoLayer(layerName); IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRendererClass(); //可以設置多個字段 uniqueValueRenderer.FieldCount = 1;//0-3個 uniqueValueRenderer.set_Field(0, RenderField); //簡單填充符號 ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass(); simpleFillSymbol.Style = FillStyle; IFeatureCursor featureCursor = geoFeatureLayer.FeatureClass.Search(null, false); IFeature feature; if (featureCursor != null) { IEnumColors enumColors = CreateAlgorithmicColorRamp(valueCount).Colors; int fieldIndex = geoFeatureLayer.FeatureClass.Fields.FindField(RenderField); for (int i = 0; i < valueCount; i++) { feature = featureCursor.NextFeature(); string nameValue = feature.get_Value(fieldIndex).ToString(); simpleFillSymbol = new SimpleFillSymbolClass(); simpleFillSymbol.Color = enumColors.Next(); uniqueValueRenderer.AddValue(nameValue, RenderField, simpleFillSymbol as ISymbol); } } geoFeatureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer; } /// <summary> /// 單一值渲染(多字段) /// </summary> /// <param name="layerName">圖層名</param> /// <param name="RenderField">多字段名</param> /// <param name="FillStyle">樣式</param> /// <param name="valueCount">每個字段中唯一值的個數</param> public void createUniqueValueRander(string layerName, string[] RenderField, esriSimpleFillStyle FillStyle, int[] valueCount) { IGeoFeatureLayer geoFeatureLayer; geoFeatureLayer = getGeoLayer(layerName); IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRendererClass(); //可以設置多個字段 uniqueValueRenderer.FieldCount = RenderField .Length;//0-3個 for (int i = 0; i < RenderField.Length; i++) { uniqueValueRenderer.set_Field(i, RenderField[i]); } //簡單填充符號 ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbolClass(); simpleFillSymbol.Style = FillStyle; IFeatureCursor featureCursor = geoFeatureLayer.FeatureClass.Search(null, false); IFeature feature; if (featureCursor != null) { for (int i = 0; i < RenderField.Length; i++) { IEnumColors enumColors = CreateAlgorithmicColorRamp(valueCount[i]).Colors; int fieldIndex = geoFeatureLayer.FeatureClass.Fields.FindField(RenderField[i]); for (int j = 0; j < valueCount[i]; j++) { feature = featureCursor.NextFeature(); string nameValue = feature.get_Value(fieldIndex).ToString(); simpleFillSymbol = new SimpleFillSymbolClass(); simpleFillSymbol.Color = enumColors.Next(); uniqueValueRenderer.AddValue(nameValue, RenderField[i], simpleFillSymbol as ISymbol); } } } geoFeatureLayer.Renderer = uniqueValueRenderer as IFeatureRenderer; }
四、ProportionalSymbolRenderer專題圖
使用梯度着色法制作的專題圖。
ProportionalSymbolRenderer實現了IProportionalSymbolRenderer接口。
這種着色法需要用戶知道最大和最小點各自代表的字段值、着色基於的字段和着色點使用的符號以及它在Legend要出現的級別數目。
/// <summary> /// 梯度着色 /// </summary> /// <param name="layerName">圖層名字</param> /// <param name="ProportionField">要參考的字段</param> /// <param name="FillStyle">填充樣式</param> /// <param name="fillColor">填充Color</param> /// <param name="characterMarkerSymbol">特征點符號</param> /// <param name="units">參考單位</param> /// <param name="pLegendSymbolCount">要分成的級數</param> public void createProportionSymbolRender(string layerName, string ProportionField, esriSimpleFillStyle FillStyle, IColor fillColor, ICharacterMarkerSymbol characterMarkerSymbol, esriUnits units, int pLegendSymbolCount) { IGeoFeatureLayer geoFeatureLayer; IFeatureLayer featureLayer; IProportionalSymbolRenderer proportionalSymbolRenderer; ITable table; ICursor cursor; IDataStatistics dataStatistics;//用一個字段生成統計數據 IStatisticsResults statisticsResult;//報告統計數據 //stdole.IFontDisp fontDisp;//定義字體 geoFeatureLayer = getGeoLayer(layerName); featureLayer = geoFeatureLayer as IFeatureLayer; table = geoFeatureLayer as ITable; cursor = table.Search(null, true); dataStatistics = new DataStatisticsClass(); dataStatistics.Cursor = cursor; dataStatistics.Field = ProportionField;//確定分級字段 statisticsResult = dataStatistics.Statistics; if (statisticsResult != null) { IFillSymbol fillSymbol = new SimpleFillSymbolClass(); fillSymbol.Color = fillColor; //ICharacterMarkerSymbol characterMarkerSymbol = new CharacterMarkerSymbolClass(); //fontDisp = new stdole.StdFontClass() as stdole.IFontDisp; //fontDisp.Name = "arial"; //fontDisp.Size = 20; //characterMarkerSymbol.Font = fontDisp; //characterMarkerSymbol.CharacterIndex = 90; //characterMarkerSymbol.Color = getRGB(255, 0, 0); //characterMarkerSymbol.Size = 8; proportionalSymbolRenderer = new ProportionalSymbolRendererClass(); proportionalSymbolRenderer.ValueUnit = units; proportionalSymbolRenderer.Field = ProportionField ; proportionalSymbolRenderer.FlanneryCompensation = false;//分級是不是在TOC中顯示legend proportionalSymbolRenderer.MinDataValue = statisticsResult.Minimum; proportionalSymbolRenderer.MaxDataValue = statisticsResult.Maximum; proportionalSymbolRenderer.BackgroundSymbol = fillSymbol; proportionalSymbolRenderer.MinSymbol = characterMarkerSymbol as ISymbol; proportionalSymbolRenderer.LegendSymbolCount = pLegendSymbolCount;//要分成的級數 proportionalSymbolRenderer.CreateLegendSymbols(); geoFeatureLayer.Renderer = proportionalSymbolRenderer as IFeatureRenderer; } }
五、ChartRenderer專題圖
使用一個餅圖或柱圖來表示一個要素的多個屬性。有水平排列和累計排列兩種。
ChartRenderer對象實現了IChartRenderer接口,其中ChartSymbol方法用於設置着色對象的着色符號,Label屬性用於設置Legend的標簽。
該方法用於比較一個要素中不同屬性,在獲得着色圖層的單個或多個字段時用RendererField對象來操作。該類實現了IRendererField接口,可以通過AddField方法來添加字段。
該着色法是使用餅圖來表現要素的多個屬性之間的比率關系。該對象實現了IPicChartRenderer接口,使用PieChartSymbol符號來修飾要素。
/// <summary> /// 條狀圖渲染 /// </summary> /// <param name="layerName">圖層名字</param> /// <param name="RenderField">要柱狀表示的字段</param> /// <param name="fillsymbolColor">這些字段分別需要渲染的顏色</param> /// <param name="BarWidth">每個柱子的寬度</param> /// <param name="BgColor">背景色</param> public void createBarChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor,double BarWidth,IColor BgColor) { IGeoFeatureLayer geoFeatureLayer; IFeatureLayer featureLayer; ITable table; ICursor cursor; IRowBuffer rowBuffer; //獲取渲染圖層 geoFeatureLayer = getGeoLayer(layerName); featureLayer = geoFeatureLayer as IFeatureLayer; table = featureLayer as ITable; geoFeatureLayer.ScaleSymbols = true; IChartRenderer chartRenderer = new ChartRendererClass(); IRendererFields rendererFields = chartRenderer as IRendererFields; for (int i = 0; i < RenderField.Length; i++) { rendererFields.AddField(RenderField[i], RenderField[i]); } //int[] fieldIndexs = new int[2]; //fieldIndexs[0] = table.FindField(field1); //fieldIndexs[1] = table.FindField(field2); //獲取要素最大值,決定柱子的最大高度 double fieldValue = 0.0, maxValue = 0.0; cursor = table.Search(null, true); rowBuffer = cursor.NextRow(); while (rowBuffer != null) { for (int i = 0; i < RenderField.Length; i++) { int index = table.FindField(RenderField[i]); fieldValue = double.Parse(rowBuffer.get_Value(index).ToString()); if (fieldValue > maxValue) { maxValue = fieldValue; } } rowBuffer = cursor.NextRow(); } //創建水平排列符號 IBarChartSymbol barChartSymbol = new BarChartSymbolClass(); barChartSymbol.Width = BarWidth;//柱子的邊長 IMarkerSymbol markerSymbol = barChartSymbol as IMarkerSymbol; markerSymbol.Size = 50;//這個是? IChartSymbol chartSymbol = barChartSymbol as IChartSymbol; chartSymbol.MaxValue = maxValue; //添加渲染符號 ISymbolArray symbolArray = barChartSymbol as ISymbolArray; IFillSymbol[] fillsymbol = new IFillSymbol[RenderField.Length]; for (int i = 0; i < RenderField.Length; i++) { //設置不同顏色的柱子 fillsymbol[i] = new SimpleFillSymbolClass(); fillsymbol[i].Color = fillsymbolColor[i]; symbolArray.AddSymbol(fillsymbol[i] as ISymbol); //IFillSymbol fillSymbol = new SimpleFillSymbolClass(); //fillSymbol.Color = getRGB(255, 0, 0);//紅色柱子 //symbolArray.AddSymbol(fillSymbol as ISymbol); //fillSymbol = new SimpleFillSymbolClass(); //fillSymbol.Color = getRGB(0, 255, 0);//綠色柱子 //symbolArray.AddSymbol(fillSymbol as ISymbol); } //設置柱狀圖符號 chartRenderer.ChartSymbol = barChartSymbol as IChartSymbol; //設置底圖樣式 IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); pFillSymbol.Color = BgColor; chartRenderer.BaseSymbol = pFillSymbol as ISymbol; chartRenderer.UseOverposter = false;//假如那個位置放不下柱狀圖,是否用線段連接指示位置 //創建圖例 chartRenderer.CreateLegend(); geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer; } /// <summary> /// 創建累計柱狀圖表(stacked) /// </summary> /// <param name="layerName">Name</param> /// <param name="RenderField">Fields</param> /// <param name="fillsymbolColor">every Color</param> /// <param name="BarWidth">width</param> /// <param name="BgColor">BackGound Color</param> public void createStackedChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor, double BarWidth, IColor BgColor) { IGeoFeatureLayer geoFeatureLayer; IFeatureLayer featureLayer; ITable table; ICursor cursor; IRowBuffer rowBuffer; //獲取渲染圖層 geoFeatureLayer = getGeoLayer(layerName); featureLayer = geoFeatureLayer as IFeatureLayer; table = featureLayer as ITable; geoFeatureLayer.ScaleSymbols = true; IChartRenderer chartRenderer = new ChartRendererClass(); IRendererFields rendererFields = chartRenderer as IRendererFields; for (int i = 0; i < RenderField.Length; i++) { rendererFields.AddField(RenderField[i], RenderField[i]); } //獲取要素最大值 double fieldValue = 0.0, maxValue = 0.0; cursor = table.Search(null, true); rowBuffer = cursor.NextRow(); while (rowBuffer != null) { for (int i = 0; i < RenderField.Length ; i++) { int index = table.FindField(RenderField[i]); fieldValue = double.Parse(rowBuffer.get_Value(index).ToString()); if (fieldValue > maxValue) { maxValue = fieldValue; } } rowBuffer = cursor.NextRow(); } //創建累積排列符號 IStackedChartSymbol stackedChartSymbol = new StackedChartSymbolClass(); stackedChartSymbol.Width = 10;//柱子寬度 IMarkerSymbol markerSymbol = stackedChartSymbol as IMarkerSymbol; markerSymbol.Size = 50;//下面的大小 IChartSymbol chartSymbol = stackedChartSymbol as IChartSymbol; chartSymbol.MaxValue = maxValue; //添加渲染符號 ISymbolArray symbolArray = stackedChartSymbol as ISymbolArray; IFillSymbol[] fillsymbol = new IFillSymbol[RenderField.Length]; for (int i = 0; i < RenderField.Length; i++) { //設置不同顏色的柱子 fillsymbol[i] = new SimpleFillSymbolClass(); fillsymbol[i].Color = fillsymbolColor[i]; symbolArray.AddSymbol(fillsymbol[i] as ISymbol); } //設置柱狀圖符號 chartRenderer.ChartSymbol = stackedChartSymbol as IChartSymbol; IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); pFillSymbol.Color =BgColor; chartRenderer.BaseSymbol = pFillSymbol as ISymbol; chartRenderer.UseOverposter = false; //創建圖例 chartRenderer.CreateLegend(); geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer; } /// <summary> /// 創建餅圖 /// </summary> /// <param name="layerName">name</param> /// <param name="RenderField">Fields</param> /// <param name="fillsymbolColor">Each color</param> /// <param name="BgColor">background Color</param> public void createPieChartSymbol(string layerName, string[] RenderField, IColor[] fillsymbolColor, IColor BgColor) { IGeoFeatureLayer geoFeatureLayer; IFeatureLayer featureLayer; ITable table; ICursor cursor; IRowBuffer rowBuffer; //獲取渲染圖層 geoFeatureLayer = getGeoLayer(layerName); featureLayer = geoFeatureLayer as IFeatureLayer; table = featureLayer as ITable; geoFeatureLayer.ScaleSymbols = true; IChartRenderer chartRenderer = new ChartRendererClass(); IPieChartRenderer pieChartRenderer = chartRenderer as IPieChartRenderer; IRendererFields rendererFields = chartRenderer as IRendererFields; for (int i = 0; i < RenderField.Length; i++) { rendererFields.AddField(RenderField[i], RenderField[i]); } //獲取渲染要素的最大值 double fieldValue = 0.0, maxValue = 0.0; cursor = table.Search(null, true); rowBuffer = cursor.NextRow(); while (rowBuffer != null) { for (int i = 0; i < RenderField.Length ; i++) { int index = table.FindField(RenderField[i]); fieldValue = double.Parse(rowBuffer.get_Value(index).ToString()); if (fieldValue > maxValue) { maxValue = fieldValue; } } rowBuffer = cursor.NextRow(); } //設置餅圖符號 IPieChartSymbol pieChartSymbol = new PieChartSymbolClass(); pieChartSymbol.Clockwise = true; pieChartSymbol.UseOutline = true; IChartSymbol chartSymbol = pieChartSymbol as IChartSymbol; chartSymbol.MaxValue = maxValue; ILineSymbol lineSymbol = new SimpleLineSymbolClass(); lineSymbol.Color = getRGB(255, 0, 0); lineSymbol.Width = 2; pieChartSymbol.Outline = lineSymbol; IMarkerSymbol markerSymbol = pieChartSymbol as IMarkerSymbol; markerSymbol.Size = 30; //添加渲染符號 ISymbolArray symbolArray = pieChartSymbol as ISymbolArray; IFillSymbol[] fillsymbol =new IFillSymbol[RenderField.Length]; for (int i = 0; i < RenderField.Length; i++) { fillsymbol[i] = new SimpleFillSymbolClass(); fillsymbol[i].Color = fillsymbolColor[i]; symbolArray.AddSymbol(fillsymbol[i] as ISymbol); } //設置背景 chartRenderer.ChartSymbol = pieChartSymbol as IChartSymbol; IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); pFillSymbol.Color = BgColor; chartRenderer.BaseSymbol = pFillSymbol as ISymbol; chartRenderer.UseOverposter = false; //創建圖例 chartRenderer.CreateLegend(); geoFeatureLayer.Renderer = chartRenderer as IFeatureRenderer; }
六、DotDensityRenderer專題圖
DotDensityRenderer對象使用DotDensityFillSymbol符號對Polygon類型的要素進行着色。該專題圖使用隨機分布的點的密度來表現要素某個屬性值得大小。也可以對圖層的多個屬性值着色,通過指定不同的點符號來區分。
DotDensityRenderer對象實現IDotDensityRenderer接口,定義了使用點密度着色方法和屬性,如DotDensitySymbol用於確定着色點符號,CreateLegend方法用於產生圖例。
/// <summary> /// 點密度 /// </summary> /// <param name="layerName">圖層名字</param> /// <param name="RenderField">渲染字段</param> /// <param name="dotDensityFillSymbol">點密度符號</param> /// <param name="simpleMarkerSymbol">點符號</param> /// <param name="RenderDensity">點密度</param> public void createDotDensityFillSymbol(string layerName, string RenderField, IDotDensityFillSymbol dotDensityFillSymbol, ISimpleMarkerSymbol simpleMarkerSymbol,double RenderDensity) { IGeoFeatureLayer geoFeatureLayer; IDotDensityRenderer dotDensityRenderer; //獲取渲染圖層 geoFeatureLayer = getGeoLayer(layerName); dotDensityRenderer = new DotDensityRendererClass(); IRendererFields rendererFields = dotDensityRenderer as IRendererFields; //設置渲染字段 rendererFields.AddField(RenderField, RenderField); ////設置填充顏色和背景色,直接由參數傳入,具體定義參考下面的 例子 //dotDensityFillSymbol = new DotDensityFillSymbolClass(); //dotDensityFillSymbol.DotSize = 3; //dotDensityFillSymbol.Color = getRGB(255, 0, 0); //dotDensityFillSymbol.BackgroundColor = getRGB(0, 255, 0); //設置渲染符號 ISymbolArray symbolArray = dotDensityFillSymbol as ISymbolArray; //點符號樣式,也可以參考下面的自己定義 //ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbolClass(); //simpleMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle; //simpleMarkerSymbol.Size = 2; //simpleMarkerSymbol.Color = getRGB(0, 0, 255); symbolArray.AddSymbol(simpleMarkerSymbol as ISymbol); dotDensityRenderer.DotDensitySymbol = dotDensityFillSymbol; //設置渲染密度 dotDensityRenderer.DotValue = RenderDensity; //創建圖例 dotDensityRenderer.CreateLegend(); geoFeatureLayer.Renderer = dotDensityRenderer as IFeatureRenderer; }
此外還有兩個補充方法(在調用這些方法的時候能用到):
private IMap pMap; public Renderer(IMap _pMap) { pMap = _pMap; } //獲取顏色對象 private IRgbColor getRGB(int r, int g, int b) { IRgbColor pColor; pColor = new RgbColorClass(); pColor.Red = r; pColor.Green = g; pColor.Blue = b; return pColor; } private IGeoFeatureLayer getGeoLayer(string layerName) { ILayer layer; IGeoFeatureLayer geoFeatureLayer; for (int i = 0; i < this.pMap.LayerCount; i++) { layer = this.pMap.get_Layer(i); if (layer != null && layer.Name == layerName) { geoFeatureLayer = layer as IGeoFeatureLayer; return geoFeatureLayer; } } return null; }
