ArcEngine简单教程汇总
目录
1 目的
实现简单的按照arcmap自带色带,进行图层渲染功能,包括
对栅格图层,按栅格值进行拉伸渲染、分级渲染、唯一值渲染
对矢量图层,按某一字段值进行分级渲染、唯一值渲染
2 概要
本文只介绍主要功能方法,具体的调用关系、窗口实现等完整完整demo可见:
https://download.csdn.net/download/nominior/12454058
色带:
1)获取
使用SymbologyControl控件获取ArcMap色带,色带位置:ArcMap安装路径/Styles/ESRI.Style
2)显示
使用C#中的combobox对色带进行显示(比SymbologyControl效果略好),分两个过程:
- 修改combobox的DrawItem方法,使得combobox可以绘制色带
- 遍历SymbologyControl中的色带,绘制到combobox中
栅格渲染:
- 包括拉伸渲染、分级渲染、唯一值渲染等渲染方式
- 基本渲染流程为:创建并设置对应渲染器,渲染颜色与渲染值映射,栅格图层渲
具体见 代码及注释
矢量渲染:
- 包括拉伸渲染、分级渲染、唯一值渲染等渲染方式
- 基本渲染流程为:创建并设置对应渲染器,数值处理,渲染颜色与渲染值映射,栅格图层渲染
具体见 代码及注释
3代码
涉及的ArcGIS引用、界面示意如图:
combobox色带显示代码
// combobox重绘
private void cb_colormap_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
e.Graphics.DrawImage(cb_colormap.Items[e.Index] as Image, e.Bounds);
}
// 初始化符号库
private void InitSymbologyControl()
{
//色带定位
string sInstall = "D:\\ArcGIS\\Desktop10.2\\";
string defaultStyle = System.IO.Path.Combine(sInstall, "Styles\\ESRI.ServerStyle");
//色带读取
this.axSymbologyControl1.LoadStyleFile(defaultStyle);
this.axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassColorRamps;
//色带另存
this.pSymbologyStyleClass = axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassColorRamps);
}
// 初始化色带下拉框
private void InitColorRampCombobox()
{
this.cb_colormap.DrawMode = DrawMode.OwnerDrawFixed;
this.cb_colormap.DropDownStyle = ComboBoxStyle.DropDownList;
//绘制色带
for (int i = 0; i < pSymbologyStyleClass.ItemCount; i++)
{
//从另存中读取色带
IStyleGalleryItem pStyleGalleryItem = pSymbologyStyleClass.G