VS2010--AE10.2------------單一符號化
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using 單一符號化.Class;
//using 專題地圖.Class.EnumType;
//using 專題地圖.Symbol;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Output;
using stdole;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.CatalogUI;
using 單一符號化.Symbol;
namespace 單一符號化
{
public partial class Form1 : Form
{
private frmSimpleRender frmSimRender = null;
private OperateMap m_OperateMap = null;
public Form1()
{
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
InitializeComponent();
m_OperateMap = new OperateMap();
}
private void Openfile_Click(object sender, EventArgs e)
{
ICommand Cmd = new ControlsOpenDocCommandClass();
Cmd.OnCreate(mainMapControl.Object);
Cmd.OnClick();
}
private void SingleSymbol_Click(object sender, EventArgs e)
{
try
{
if (frmSimRender == null || frmSimRender.IsDisposed)
{
frmSimRender = new frmSimpleRender();
frmSimRender.SimpleRender += new frmSimpleRender.SimpleRenderEventHandler(frmSimRender_SimpleRender);
}
frmSimRender.PMap = mainMapControl.Map;
frmSimRender.InitUI();
frmSimRender.ShowDialog();
}
catch (Exception ex)
{
}
}
private void frmSimRender_SimpleRender(string sFeatClsName, IRgbColor pRgbColr)
{
IFeatureLayer pFeatLyr = m_OperateMap.GetFeatLyrByName(mainMapControl.Map, sFeatClsName);
SimpleRenderer(pFeatLyr, pRgbColr);
}
private void SimpleRenderer(IFeatureLayer pFeatLyr, IRgbColor pRgbColor)
{
try
{
esriGeometryType types = pFeatLyr.FeatureClass.ShapeType;
ISimpleRenderer pSimRender = new SimpleRendererClass();
if (types == esriGeometryType.esriGeometryPolygon)
{
ISimpleFillSymbol pSimFillSym = new SimpleFillSymbolClass();
pSimFillSym.Color = pRgbColor;
pSimRender.Symbol = pSimFillSym as ISymbol; // 設定渲染的樣式
}
else if (types == esriGeometryType.esriGeometryPoint)
{
ISimpleMarkerSymbol pSimpleMarkerSymbol = new SimpleMarkerSymbolClass();
pSimpleMarkerSymbol.Color = pRgbColor;
pSimRender.Symbol = pSimpleMarkerSymbol as ISymbol;
}
else if (types == esriGeometryType.esriGeometryPolyline)
{
ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
pSimpleLineSymbol.Color = pRgbColor;
pSimRender.Symbol = pSimpleLineSymbol as ISymbol;
}
IGeoFeatureLayer pGeoFeatLyr = pFeatLyr as IGeoFeatureLayer;
pGeoFeatLyr.Renderer = pSimRender as IFeatureRenderer;
(mainMapControl.Map as IActiveView).PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
mainTOCControl.Update();
}
catch (Exception ex)
{
}
}
}
}