ArcGis Engine 专题地图制图统计图表符号化(柱状图,饼状图)
首先看一下如何在arcgis中制作树状图和饼状图【ArcGIS教程】(95)如何在ArcGIS中制作柱状图与饼状图? - 知乎
Arcgis Engine实现方式:
1.无论是树状图,饼状图,条形图还是堆叠图都是由ChartRenderer类实现的,该类实现IChartRenderer接口。
2.BaseSymbol属性用来设置或返回统计图表的符号。
3.ChartSymbol用来设置或返回统计图表的样式。ChartSymbol可以生成不同的图表,当IChartRenderer的接口ChartSymbol设置为BarChartSymbol PieChartSymbol分别代表壮壮图和饼状图。
4.IChartSymbol中MAxValue设置统计中的最大值
5.ImarkSymbol设置统计图表形状的最大值,柱状图中则表示最大值的最大高度。
实例代码实现思路如下
1.遍历出所选第一个字段的属性值的最大值,并将其赋值给.IChartSymbol中MAxValue,作为统计图大小的依据。
2.根据不同选择生成对应的图表。
效果图:柱状图
效果图:饼状图
代码:
/// <summary>/// 图表/// </summary>/// <param name="pFeatLyr">渲染图层</param>/// <param name="_dicFieldAndColor">储存渲染字段和其对应的颜色</param> private void ChartRenderer(IFeatureLayer pFeatLyr, Dictionary<string, IRgbColor> dicFieldAndColor){IGeoFeatureLayer pGeoFeatLyr = pFeatLyr as IGeoFeatureLayer;IChartRenderer pChartRender = new ChartRendererClass();IRendererFields pRenderFields = pChartRender as IRendererFields;IFeatureCursor pCursor = null;IDataStatistics pDataSta = null;double dMax = 0; double dTemp = 0;IQueryFilter pQueryFilter = new QueryFilterClass();pCursor = pGeoFeatLyr.Search(pQueryFilter, true);//遍历出所选择的第一个字段的最大值,,作为设置专题图的比例大小的依据foreach (KeyValuePair<string, IRgbColor> _keyValue in dicFieldAndColor){pRenderFields.AddField(_keyValue.Key, _keyValue.Key);pDataSta = new DataStatisticsClass();pDataSta.Cursor = pCursor as ICursor;pDataSta.Field = _keyValue.Key;dTemp = pDataSta.Statistics.Maximum;if (dTemp >= dMax){dMax = dTemp;}}IRgbColor pRgbColor = null;IChartSymbol pChartSym = null;IFillSymbol pFillSymbol = null;IMarkerSymbol pMarkerSym = null;IBarChartSymbol pBarChartSym = null;IPieChartSymbol pPieChartSymbol = null;IStackedChartSymbol pStackChartSym = null;// 定义并设置渲染样式switch (_enumChartType){case EnumChartRenderType.PieChart:pPieChartSymbol = new PieChartSymbolClass();pPieChartSymbol.Clockwise = true;//说明饼图是否顺时针方向pPieChartSymbol.UseOutline = true;//说明是否使用轮廓线ILineSymbol pLineSym = new SimpleLineSymbolClass();pLineSym.Color = m_OperateMap.GetRgbColor(100, 205, 30) as IColor;pLineSym.Width = 1;pPieChartSymbol.Outline = pLineSym;break;case EnumChartRenderType.BarChart:pBarChartSym = new BarChartSymbolClass();pBarChartSym.Width = 6;//设置每个条形图的宽度break;case EnumChartRenderType.StackChart:pStackChartSym = new StackedChartSymbolClass();pStackChartSym.Width = 6;//设置每个堆叠图的宽度break;}if (pPieChartSymbol != null){pChartSym = pPieChartSymbol as IChartSymbol;pMarkerSym = pPieChartSymbol as IMarkerSymbol;pMarkerSym.Size = 30; //设置饼状图的大小}if (pBarChartSym != null){pChartSym = pBarChartSym as IChartSymbol;pMarkerSym = pBarChartSym as IMarkerSymbol;pMarkerSym.Size = 30;//设置条形图的高度}else if (pStackChartSym != null){pChartSym = pStackChartSym as IChartSymbol;pMarkerSym = pStackChartSym as IMarkerSymbol;pMarkerSym.Size = 30;//设置堆叠图的高度}pChartSym.MaxValue = dMax;ISymbolArray pSymArray = null;if (pBarChartSym != null){pSymArray = pBarChartSym as ISymbolArray;}else if (pStackChartSym != null){pSymArray = pStackChartSym as ISymbolArray;}else if (pPieChartSymbol != null){pSymArray = pPieChartSymbol as ISymbolArray;}foreach (KeyValuePair<string, IRgbColor> _keyValue in dicFieldAndColor){//获取渲染字段的颜色值pRgbColor = _keyValue.Value;pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = pRgbColor as IColor;pSymArray.AddSymbol(pFillSymbol as ISymbol);}if (pPieChartSymbol != null){pChartRender.ChartSymbol = pPieChartSymbol as IChartSymbol;}if (pBarChartSym != null){pChartRender.ChartSymbol = pBarChartSym as IChartSymbol;}else if (pStackChartSym != null){pChartRender.ChartSymbol = pStackChartSym as IChartSymbol;}pFillSymbol = new SimpleFillSymbolClass();pFillSymbol.Color = m_OperateMap.GetRgbColor(239, 228, 190);pChartRender.BaseSymbol = pFillSymbol as ISymbol;// 设置背景符号//让符号处于图形中央(若渲染的图层为点图层,则该句应去掉,否则不显示渲染结果)pChartRender.UseOverposter = false; pChartRender.CreateLegend();pGeoFeatLyr.Renderer = pChartRender as IFeatureRenderer;mainMapControl.Refresh(); mainTOCControl.Update();_enumChartType = EnumChartRenderType.UnKnown;}
ArcGis Engine 专题地图制图统计图表符号化(柱状图,饼状图)相关推荐
- java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...
在EXCEL中,如何把表格中的数据转换成饼状图? 在Excel中,把中的数据转换状图的操作步骤如下: 想转换的数据源,插入饼状图,Excel会自动根据选择的数据源生成饼状图.接下来,可以自定义饼状图的 ...
- Word中插入表格与柱状图饼状图技术经验分享
最近公司一个项目里要求自动生成报告功能,研究了1周多,主要实现方式是通过调用微软Office COM组件来实现操作word文档,生成段落,表格,及各种图表. 本人发现操作word地方也有几个坑人的地方 ...
- Superset 制作 地图 柱状图 饼状图
文章目录 制作地图 制作柱状图 制作饼状图 制作地图 1)创建 Chart 2)配置 Chart 3)结果图 制作柱状图 1)创建 Chart 2)配置 Chart 3)结果图 制作饼状图 1)创建 ...
- java实现将数据生成图表至excel导出(包括折线图,柱状图,饼状图)
1. 目的 根据已有数据,手动(java后台)生成图表至excel并导出.用于后台查询到数据后直接创建图表,可以代替直接使用图表信息字符串. 2. 说明 使用jfree图表绘制类库绘制图表,并生成到本 ...
- poi导出excel文件,并生成原生图表(包括折线图,柱状图,饼状图,面积图)
前段时间,因为客户需要,要做一个导出excel文件功能,并能生成原生的图表的(不是把图片插入到excel文档),找了很多文档看,也看了很多别人的代码,个人也总结了一下,不足之处,请各位大牛谅解. 需要 ...
- Echarst柱状图+饼状图+vue2 商品案例
最终效果展示: echarst非常简单,就是使用的数据需要按照规定的格式,往往是获取数据较难 首先前端,只需要一个div,用ref指定名称,定好宽高,就ok,div多大,图就会自适应多大 <di ...
- mysql 柱状图统计_js/jquery 进行动态统计 各种柱状图 饼状图 线条图 等
1.简单示例1 线条图 $(document).ready(function(){ var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); }) ...
- matlab柱状斜线_Matlab:柱状图饼状图填充不同条纹
下面就是重点:如何把上述图像转换成黑白图像,并填充不同条纹. 首先,创建名为"applyhatch.m"的函数脚本. 在同一路径下. 代码如下:--复制即可. function a ...
- 动态绘制柱状图饼状图
http://www.cnblogs.com/haian/archive/2009/12/08/1619751.html 转载于:https://www.cnblogs.com/modernsky20 ...
最新文章
- log4cxx第三篇----使用多个logger
- pandas为dataframe所有的列名称名添加前缀(add_prefix)
- String字符串类的获取功能
- Java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
- 云计算呼叫中心_SaaS云呼叫中心系统只用于销售或客服?
- 微软CEO纳德拉开讲,2016微软开发者峰会在京召开
- 导出合并小文件_关于微信语音导出,这个方法强烈建议~
- python内存技巧_使用__slots__节省python内存技巧
- 基于JAVA开发的在线双人联机坦克大战小游戏
- 版人人商城V3.7.6开源解密版小程序前端+后端+安装使用视频教程
- ADB 环境变量配置教学
- Qt编写输入法V2019终极版
- 上门洗车APP开发的功能
- JPEG文件中默认Huffman表说明
- 用电脑“自动生成”的图书
- 【附源码】计算机毕业设计SSM校园流浪猫关爱系统
- 小技巧---笔记本外接显示器设置全屏壁纸
- java 事件链_供应链攻击事件——针对Github中Java项目的定向攻击
- Android measure方法详解
- python读取odb_如何使用python脚本更新Abaqus odb文件的节点值?
热门文章
- carla Engine crash handling finished; re-raising signal 11 for the default handler. Good bye.
- Kubernetes存活探针和就绪探针的最佳实践
- wifi 中间人攻击_公共wifi下的中间人攻击
- 微信图片,此图片来自微信公众平台未经允许不可引用解决方案
- excel怎样修改表格时间和计算机一制,Excel表格中如何自动生成记录数据的日期和时间...
- SQL按姓氏笔画排序
- 学习笔记 JavaScript 动画 加速
- 华为cpe虚拟服务器,华为5G CPE Pro:让你不用换手机就能体验5G网络
- 快排优化代码__2018.07.26
- 推荐系统论文:DKN Deep Knowledge-Aware Network for News Recommendation