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色彩对照表符号化                               
4RasterClassifyColorRampRenderer分类值等级符号化
5RasterStretchColorRampRenderer连续值等级符号化
6RasterDiscreteColorRenderer离散色彩符号化

部分示例代码:

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;
        }







  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值