这几天一直看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-1022-DT-SSDCP-Patch.msp"是一个补丁文件,专门设计用于解决ArcGIS 10.2.2中的特定问题。在这个情况下,补丁的主要目标是修复在Windows操作系统下,当用户尝试将属性表中的汉字导出到Excel时出现的...
### 高效ArcGIS Engine开发:设计高可扩展的ArcGIS Engine应用 #### ArcGIS Engine开发综述 ArcGIS Engine是一种基于组件的技术,利用COM(Component Object Model)封装了一组高级接口,这些接口构建在ArcObjects...
尽管官方下载有时可能不稳定,但你已经获得了arcgis-maps-sdk-unreal-engine-1.0.0.zip压缩包,其中包含的ArcGISMapsSDK是开始开发之旅的基础。解压后,你可以按照文档指导进行安装和配置。 通过ArcGIS Maps SDK ...
在ArcGIS Engine开发中,查询功能是至关重要的一个部分,它允许用户在地图上执行各种空间和非空间查询,以获取所需的信息。本实验报告将深入探讨如何利用ArcGIS Engine API来实现这些功能。 首先,ArcGIS Engine是...
arcgis for java api. arcgis jar. arcgis-runtime-sdk-java-100.5.0
标题中的"arcgis-android-10.2.9.aar"指的是ArcGIS Android SDK的一个特定版本,版本号为10.2.9,它是一个Android库文件,通常以"AAR"(Android Archive)格式打包。 在描述中提到的问题是开发者在尝试通过Android ...
这是arcgis提供的补丁文件,用于修复windows某些更新后导致arcgis server不能发布服务的情况。 在arcgisserver安装完毕后,如果不能正常发布服务,则需要安装该补丁文件。
在ArcGIS Engine开发中,地图查询是核心功能之一,它允许开发者通过编程方式与地图数据进行交互,查找、筛选和获取特定的信息。ArcGIS Engine是一个强大的SDK(软件开发工具包),由Esri公司提供,用于构建桌面、...
【ArcGIS Engine 开发详解】 ArcGIS Engine 是 Esri 公司推出的一款强大的地理信息系统 (GIS) 开发工具,主要用于构建桌面应用、Web 应用以及移动应用。它提供了丰富的地图绘制、空间分析、数据管理等功能,使得...
在实际开发中,开发者需要将arcgis-android-sdk-v10.2.3这个压缩包解压后,将其导入Eclipse或Android Studio等集成开发环境中。通过添加相关依赖,就可以开始使用SDK提供的功能来构建自己的GIS应用。随着移动设备...
这个“arcgis-runtime-samples-android-100.4-master.zip”压缩包包含了一系列100.5版本的示例代码,旨在帮助开发者快速理解和掌握ArcGIS Runtime for Android的开发技术。 1. **ArcGIS Runtime SDK介绍** ArcGIS ...
在本文中,我们将深入探讨如何使用ArcGIS Engine与C#进行地图应用的二次开发,以帮助初学者掌握关键技能,实现界面设计、属性表管理、符号编辑、鹰眼功能及自定义右键菜单等核心功能。 ArcGIS Engine是Esri公司提供...
可用以下命令将jar文件部署在本地的maven仓库:mvn install:install-file -Dfile=arcgis-java-100.8.0.jar -DgroupId=com.esri.arcgisruntime -DartifactId=arcgis-java -Dversion=100.8.0 -Dpackaging=jar
- **地图渲染**:SDK支持多种地图样式和图层,包括矢量图层、栅格图层和地形图层,能够显示高分辨率的卫星图像、地形数据以及自定义的地图服务。 - **定位服务**:集成GPS功能,可以实时获取用户位置并进行跟踪,...
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的开发。 1. **ArcGIS Add-In 开发官方讲义**: 官方讲义通常包含了详细的开发指南,包括Add-In的基本概念、...
在GIS(地理信息系统)领域,ArcGIS Engine是一个强大的开发工具,允许开发者创建各种与地理空间数据相关的应用程序。本文将深入探讨如何使用ArcGIS Engine来导出地图为图像格式,这在许多应用场景中都非常实用,...