ArcEngine图层渲染

矢量符号化(渲染)类型

  要素符号化类型 描述 
SimpleRender 简单符号化
UniqueValueRender 唯一值符号化
BiUniqueValueRender 双变量唯一值符号化
ChartRender 图表符号化
ClassBreaksRenderer 分类等级符号化
DotDensityRenderer 点密度符号化
ProportionalSymbolRenderer 根据属性值设置符号大小进行符号化
ScaleDependentRenderer 依比例尺符号化
RepresentationRenderer 制图表达符号化
10    CoTrackSymbologyRenderer(TrackingAnalyst)  轨迹符号化(应用于TrackingAnaylyst扩展模块)
11   NAStopRenderer(NetworkAnalyst) 停止符号化(应用于网络分析扩展模块) 
12   FeatureVertexRenderer(SurveyExt)  要素定点符号化(应用于测量分析扩展模块) 
13   SharedEdgeRenderer(EditorExt)  用于绘制拓扑元素
14   CoTrackSymbologyRenderer(TrackingAnalyst)
轨迹符号化(应用于TrackingAnaylyst扩展模块)
15   EnhancedInfoRenderder(TrackingAnalyst) 增强信息符号化(应用于TrackingAnaylyst扩展模块)

栅格符号化(渲染)类型

  要素符号化类型 描述
1    RasterRGBRenderer 真彩色RGB符号化
RasterUniqueValueRenderer 唯一值符号化
RasterColormapRenderer 色彩对照表符号化                               
4 RasterClassifyColorRampRenderer 分类值等级符号化
5 RasterStretchColorRampRenderer 连续值等级符号化
6 RasterDiscreteColorRenderer 离散色彩符号化

部分示例代码:

UniqueValueRender    唯一值渲染

        private void UniqueRender(IFeatureLayer featureLayer)
        {
            IUniqueValueRenderer uniqueValueRenderer = new UniqueValueRenderer();
            // 判断唯一的字段数量(1-3个),必须设置。
            uniqueValueRenderer.FieldCount = 1;
            uniqueValueRenderer.set_Field(0, "FieldName");
            
            // 设置填充样式。
            IFillSymbol fillSymbol = new SimpleFillSymbol();            
            fillSymbol.Color = new RgbColor() { Red = 255, Green = 0, Blue = 0 };
            uniqueValueRenderer.AddValue("30", "", (ISymbol)fillSymbol);
            fillSymbol = new SimpleFillSymbol();
            fillSymbol.Color = new RgbColor() { Red = 0, Green = 255, Blue = 0 };
            uniqueValueRenderer.AddValue("40", "", (ISymbol)fillSymbol);
            fillSymbol = new SimpleFillSymbol();
            fillSymbol.Color = new RgbColor() { Red = 0, Green = 0, Blue = 255 };
            uniqueValueRenderer.AddValue("50", "", (ISymbol)fillSymbol);

            // 图层设置渲染。
            var featureRenderer = (IFeatureRenderer) uniqueValueRenderer;
            var geoFeatureLayer = (IGeoFeatureLayer) featureLayer;
            geoFeatureLayer.Renderer = featureRenderer;
        }

ClassBreaksRenderer    分类等级渲染

        private void ClassBreaksRenderer(IFeatureLayer featureLayer)
        {
            IClassBreaksRenderer classBreaksRenderer = new ClassBreaksRenderer();
            classBreaksRenderer.Field = "FieldName";
            // 必须设置分类数量。
            classBreaksRenderer.BreakCount = 4;
            classBreaksRenderer.set_Break(0, 35);
            classBreaksRenderer.set_Break(1, 45);
            classBreaksRenderer.set_Break(2, 50);

            // 设置填充样式。
            IFillSymbol fillSymbol = new SimpleFillSymbol();
            fillSymbol.Color = new RgbColor() {Red = 255, Green = 0, Blue = 0};
            classBreaksRenderer.set_Symbol(0, (ISymbol)fillSymbol);
            fillSymbol = new SimpleFillSymbol();
            fillSymbol.Color = new RgbColor() {Red = 0, Green = 255, Blue = 0};
            classBreaksRenderer.set_Symbol(1, (ISymbol)fillSymbol);
            fillSymbol = new SimpleFillSymbol();
            fillSymbol.Color = new RgbColor() {Red = 0, Green = 0, Blue = 255};
            classBreaksRenderer.set_Symbol(2, (ISymbol)fillSymbol);

            // 图层设置渲染。
            var featureRenderer = (IFeatureRenderer)classBreaksRenderer;
            var geoFeatureLayer = (IGeoFeatureLayer) featureLayer;
            geoFeatureLayer.Renderer = featureRenderer;
        }

DotDensityRenderer    点密度渲染

        private void DotDensityRenderer(IFeatureLayer featureLayer)
        {
            IDotDensityRenderer dotDensityRenderer = new DotDensityRendererClass();
            // 一个点代表多大的值。(例:值为100,则会填充50个点)
            dotDensityRenderer.DotValue = 2;
            var rendererFields = (IRendererFields)dotDensityRenderer;
            rendererFields.AddField("FieldName");

            // 设置点样式。
            IDotDensityFillSymbol dotDensityFillSymbol = new DotDensityFillSymbol();
            
            IMarkerSymbol markerSymbol = new SimpleMarkerSymbol();
            markerSymbol.Color = new RgbColor() { Red = 255, Green = 0, Blue = 0 };
            markerSymbol.Size = 2;

            var symbolArray = (ISymbolArray) dotDensityFillSymbol;
            symbolArray.AddSymbol((ISymbol)markerSymbol);

            dotDensityRenderer.DotDensitySymbol = dotDensityFillSymbol;
            
            // 图层设置渲染。
            var featureRenderer = (IFeatureRenderer) dotDensityRenderer;
            var geoFeatureLayer = (IGeoFeatureLayer)featureLayer;
            geoFeatureLayer.Renderer = featureRenderer;
        }

转载自:https://blog.csdn.net/mengdong_zy/article/details/9175991

You may also like...