[转] ArcEngine 产生专题图
小生原文 ArcEngine?產生專題圖
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();//用統計結果進行分級 ,級別數目為classCountclassifyGEN.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中顯示LegendISimpleFillSymbol 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中顯示legendproportionalSymbolRenderer.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;}} View Code五、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;} View Code?
六、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;} View Code此外還有兩個補充方法(在調用這些方法的時候能用到):
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;} View Code?
?
?
?
?
?
轉載于:https://www.cnblogs.com/arxive/p/5903526.html
總結
以上是生活随笔為你收集整理的[转] ArcEngine 产生专题图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: |洛谷|DFS|P1101 单词方阵
- 下一篇: spring里的controller之间