ArcGis Engine制作点密度图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArcGis Engine制作点密度图
private void 点密度图ToolStripMenuItem_Click(object sender, EventArgs e) {
//获取当前图层,并把它设置成IGeoFeatureLayer的实例
IMap pMap = axMapControl1.Map;
ILayer pLayer = pMap.get_Layer(0) as IFeatureLayer;
IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;
IGeoFeatureLayer pGeoFeatureLayer = pLayer as IGeoFeatureLayer;
//获取图层上的feature
IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;
IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false);
IFeature pFeature = pFeatureCursor.NextFeature();
///////////////////////
///////////////////////////////////////////////////////////////////
//定义点密度图渲染组件
IDotDensityRenderer DotDensityRenderer = new DotDensityRendererClass();
//定义点密度图渲染组件对象的渲染字段对象
IRendererFields flds = (IRendererFields)DotDensityRenderer;
flds.AddField("FID", "FID");
//flds.AddField("Shape", "Shape");
//定义点密度图渲染得符号对象
IDotDensityFillSymbol ddSym = new DotDensityFillSymbolClass();
IRgbColor BackColor = new RgbColorClass();
BackColor.Red = 234;
BackColor.Blue = 128;
BackColor.Green = 220;
IRgbColor SymbolColor = new RgbColorClass();
SymbolColor.Red = 234;
SymbolColor.Blue = 128;
SymbolColor.Green = 220;
////点密度图渲染背景颜色
//ddSym.BackgroundColor = BackColor;
ddSym.DotSize =8;
ddSym.FixedPlacement = true;
//ddSym.Color = SymbolColor;
ILineSymbol pLineSymbol=new CartographicLineSymbolClass();
ddSym.Outline = pLineSymbol;
//定义符号数组
ISymbolArray symArray = (ISymbolArray)ddSym;
//添加点密度图渲染的点符号到符号数组中去
ISimpleMarkerSymbol pMarkerSymbol = new SimpleMarkerSymbolClass();
pMarkerSymbol.Style = esriSimpleMarkerStyle.esriSMSCircle;
pMarkerSymbol.Size = 2;
pMarkerSymbol.Color = SymbolColor;;
symArray.AddSymbol(pMarkerSymbol as ISymbol );
//设置点密度图渲染的点符号
//DotDensityRenderer.DotDensitySymbol =symArray;
DotDensityRenderer.DotDensitySymbol = ddSym;
//确定一个点代表多少值
DotDensityRenderer .DotValue=0.2;
//点密度渲染采用的颜色模式
DotDensityRenderer.ColorScheme = "Custom";
//创建点密度图渲染图例
DotDensityRenderer.CreateLegend();
//设置符号大小是否固定
DotDensityRenderer.MaintainSize = true;
//将点密度图渲染对象与渲染图层挂钩
pGeoFeatureLayer.Renderer = (IFeatureRenderer)DotDensityRenderer;
//刷新地图和TOOCotrol
IActiveView pActiveView = axMapControl1.Map as IActiveView;
pActiveView.Refresh();
axTOCControl1.Update();
}