`
devgis
  • 浏览: 136888 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ArcGIS Engine 渲染----饼图

 
阅读更多

这几天一直看AE,几天看下来没什么头绪,日子过得恍恍忽忽.今天终于写了一个程序练练手,根据帮助的VB程序改编的,在众多的接口之间跳来跳去,晕头转向.现把代码贴出来,给处在迷茫中的朋友一点小启示,也以此自勉!

画饼图,C#实现:

private RgbColor GetRgbColor(int red, int green, int blue)
{
RgbColor rgbColor = new RgbColorClass();
rgbColor.Red = red;
rgbColor.Green = green;
rgbColor.Blue = blue;

return rgbColor;
}

private void btnPieChart_Click(object sender, EventArgs e)
{
IMap pMap = new MapClass();
IFeatureLayer pFLayer = (IFeatureLayer)axMapControl1.get_Layer(0);
IGeoFeatureLayer pGeoFeaLayer = (IGeoFeatureLayer)pFLayer;

IChartRenderer pChartRenderer = new ChartRendererClass();

// Set up the field to draw charts

IRendererFields pRenderFields = (IRendererFields)pChartRenderer;
pRenderFields.AddField("Pop_cntry", null);
IPieChartRenderer pPieChartRender = (IPieChartRenderer)pChartRenderer;

//Calculate the max value of the data field to scale the chart


//ICursor pCursor = new CursorClass();

IQueryFilter pQueryFilter = new QueryFilterClass();
//IRowBuffer pRow = new RowBufferClass();
ITable pTable = (ITable)pGeoFeaLayer;
pQueryFilter.AddField("Pop_cntry");
ICursor pCursor = pTable.Search(pQueryFilter, true);

int fieldIndex;
double MaxValue;
bool firstValue;
double fieldValue;

fieldIndex = pTable.FindField("Pop_cntry");
firstValue = true;
MaxValue = 0;


IRowBuffer pRow = pCursor.NextRow();
while (pRow != null)
{
fieldValue =(double) pRow.get_Value(fieldIndex);
if (firstValue)
{
MaxValue = fieldValue;
firstValue = false;
}

if (fieldValue > MaxValue)
{
MaxValue = fieldValue;
}
pRow = pCursor.NextRow();
}

IPieChartSymbol pPiechartSymbol = new Pie ChartSymbolClass();
IFillSymbol pFillSymbol = new SimpleFillSymbolClass();

IChartSymbol pChartSymbol = (IChartSymbol)pPiechartSymbol;
pPiechartSymbol.Clockwise = true;
pPiechartSymbol.UseOutline = true;

ILineSymbol pOutLine = new SimpleLineSymbolClass();
pOutLine.Color = GetRgbColor(255,0,255);
pOutLine.Width = 1;
pPiechartSymbol.Outline = pOutLine;

IMarkerSymbol pMarkerSymbol = (IMarkerSymbol)pPiechartSymbol;

//finally

pChartSymbol.MaxValue = MaxValue;

pMarkerSymbol.Size = 16;

ISymbolArray pSymbolArray = (ISymbolArray)pPiechartSymbol;
pFillSymbol.Color = GetRgbColor(213,212,252);

pFillSymbol.Outline = pOutLine;
pSymbolArray.AddSymbol((ISymbol)pFillSymbol);

//set up the background

pFillSymbol.Color = GetRgbColor(239,228,190);
pChartRenderer.BaseSymbol = (ISymbol)pFillSymbol;

pChartRenderer.UseOverposter = false;

pPieChartRender.MinSize = 6;

pPieChartRender.MinValue = 453588;
pPieChartRender.FlanneryCompensation = false;
pPieChartRender.ProportionalBySum = true;

pChartRenderer.ChartSymbol = (IChartSymbol)pPiechartSymbol;
pChartRenderer.CreateLegend();
pGeoFeaLayer.Renderer =(IFeatureRenderer) pChartRenderer;

this.axLicenseControl1.Refresh();

}

来自:http://www.3snews.net/html/47/6447-9536.html

分享到:
评论

相关推荐

    高效ArcGIS Engine开发-设计高可扩展的ArcGIS Engine应用-我不是小菜.pdf

    ### 高效ArcGIS Engine开发:设计高可扩展的ArcGIS Engine应用 #### ArcGIS Engine开发综述 ArcGIS Engine是一种基于组件的技术,利用COM(Component Object Model)封装了一组高级接口,这些接口构建在ArcObjects...

    ArcGIS-1022-DT-SSDCP-Patch.msp

    标题中的"ArcGIS-1022-DT-SSDCP-Patch.msp"是一个补丁文件,专门设计用于解决ArcGIS 10.2.2中的特定问题。在这个情况下,补丁的主要目标是修复在Windows操作系统下,当用户尝试将属性表中的汉字导出到Excel时出现的...

    arcgis-maps-sdk-unreal-engine-1.0.0.zip

    尽管官方下载有时可能不稳定,但你已经获得了arcgis-maps-sdk-unreal-engine-1.0.0.zip压缩包,其中包含的ArcGISMapsSDK是开始开发之旅的基础。解压后,你可以按照文档指导进行安装和配置。 通过ArcGIS Maps SDK ...

    arcgis engine开发-查询功能实验报告_arcgis engine

    在ArcGIS Engine开发中,查询功能是至关重要的一个部分,它允许用户在地图上执行各种空间和非空间查询,以获取所需的信息。本实验报告将深入探讨如何利用ArcGIS Engine API来实现这些功能。 首先,ArcGIS Engine是...

    arcgis-java-api.jar

    arcgis for java api. arcgis jar. arcgis-runtime-sdk-java-100.5.0

    ArcGIS-1022-S-GSS-Patch.msp

    这是arcgis提供的补丁文件,用于修复windows某些更新后导致arcgis server不能发布服务的情况。 在arcgisserver安装完毕后,如果不能正常发布服务,则需要安装该补丁文件。

    arcgis engine开发-地图查询_ArcGISEngine

    在ArcGIS Engine开发中,地图查询是核心功能之一,它允许开发者通过编程方式与地图数据进行交互,查找、筛选和获取特定的信息。ArcGIS Engine是一个强大的SDK(软件开发工具包),由Esri公司提供,用于构建桌面、...

    ArcGIS-Engine-master.zip

    【ArcGIS Engine 开发详解】 ArcGIS Engine 是 Esri 公司推出的一款强大的地理信息系统 (GIS) 开发工具,主要用于构建桌面应用、Web 应用以及移动应用。它提供了丰富的地图绘制、空间分析、数据管理等功能,使得...

    arcgis-android-sdk-v10.2.3

    在实际开发中,开发者需要将arcgis-android-sdk-v10.2.3这个压缩包解压后,将其导入Eclipse或Android Studio等集成开发环境中。通过添加相关依赖,就可以开始使用SDK提供的功能来构建自己的GIS应用。随着移动设备...

    arcgis-android-10.2.9.aar

    标题中的"arcgis-android-10.2.9.aar"指的是ArcGIS Android SDK的一个特定版本,版本号为10.2.9,它是一个Android库文件,通常以"AAR"(Android Archive)格式打包。 在描述中提到的问题是开发者在尝试通过Android ...

    arcgis-runtime-samples-android-100.4-master.zip

    这个“arcgis-runtime-samples-android-100.4-master.zip”压缩包包含了一系列100.5版本的示例代码,旨在帮助开发者快速理解和掌握ArcGIS Runtime for Android的开发技术。 1. **ArcGIS Runtime SDK介绍** ArcGIS ...

    ArcGIS-Engine+C#-初学者实例代码.zip_ArcGISEngine_HWE7_arcgis engine_eng

    在本文中,我们将深入探讨如何使用ArcGIS Engine与C#进行地图应用的二次开发,以帮助初学者掌握关键技能,实现界面设计、属性表管理、符号编辑、鹰眼功能及自定义右键菜单等核心功能。 ArcGIS Engine是Esri公司提供...

    arcgis-runtime-samples-android-100.2.0

    这个名为"arcgis-runtime-samples-android-100.2.0"的压缩包,包含了100.2.0版本的示例代码,旨在帮助开发者理解和掌握如何利用该SDK创建功能丰富的地图应用。 在深入探讨之前,首先理解ArcGIS的核心概念至关重要。...

    arcgis-android-sdk-10.2.3.rar包

    arcgis-android-sdk-10.2.3.rar包,里面包含arcgis-android-api.jar,arcgis-android-app-toolkit.jar,jackson-core-lgpl-1.9.5.jar,jackson-mapper-lgpl-1.9.5.jar,jcifs-1.3.17.jar

    ArcGIS-Add-In开发文档样例资料

    这个压缩包“ArcGIS-Add-In开发文档样例资料”提供了丰富的资源,帮助你深入了解和实践ArcGIS Add-In的开发。 1. **ArcGIS Add-In 开发官方讲义**: 官方讲义通常包含了详细的开发指南,包括Add-In的基本概念、...

    arcgis-engine-expotmap-as-raster.tar.gz_arcgis engine_地图导出

    在GIS(地理信息系统)领域,ArcGIS Engine是一个强大的开发工具,允许开发者创建各种与地理空间数据相关的应用程序。本文将深入探讨如何使用ArcGIS Engine来导出地图为图像格式,这在许多应用场景中都非常实用,...

    ArcGIS-1071-DT-SO19C-Patch.msp

    ArcGIS-1071使用Oracle19c版本时desktop补丁

Global site tag (gtag.js) - Google Analytics