C#arcengine二次开发如何修改新加载的shp的符号显示,如下图
我已经在系统中添加了一个特定的Style样式文件,我的需求就是让这个新的shp直接显示为我的特定符号样式
以下回答参考GPT,并由JoseKe整理完成,希望您能采纳:csharp
IFeatureLayer featureLayer = new FeatureLayerClass();
featureLayer.FeatureClass = featureWorkspace.OpenFeatureClass("yourShapefile.shp");
csharp
ISimpleRenderer renderer = new SimpleRendererClass();
ISymbol symbol = new SimpleMarkerSymbolClass();
(symbol as ISimpleMarkerSymbol).Style = esriSimpleMarkerStyle.esriSMSCircle;
renderer.Symbol = symbol;
csharp
ISymbolFactory symbolFactory = new SymbolFactoryClass();
ISymbol circle1Symbol = symbolFactory.CreateMarkerSymbol(esriSimpleMarkerStyle.esriSMSCircle, System.Drawing.Color.Red, System.Drawing.Color.Black, 8) as ISymbol;
renderer.Symbol = circle1Symbol;
csharp
(featureLayer as IGeoFeatureLayer).Renderer = renderer as IFeatureRenderer;
csharp
// 加载要素层
IFeatureLayer featureLayer = new FeatureLayerClass();
featureLayer.FeatureClass = featureWorkspace.OpenFeatureClass("yourShapefile.shp");
// 创建渲染器
ISimpleRenderer renderer = new SimpleRendererClass();
ISymbol symbol = new SimpleMarkerSymbolClass();
(symbol as ISimpleMarkerSymbol).Style = esriSimpleMarkerStyle.esriSMSCircle;
renderer.Symbol = symbol;
// 修改符号样式
ISymbolFactory symbolFactory = new SymbolFactoryClass();
ISymbol circle1Symbol = symbolFactory.CreateMarkerSymbol(esriSimpleMarkerStyle.esriSMSCircle, System.Drawing.Color.Red, System.Drawing.Color.Black, 8) as ISymbol;
renderer.Symbol = circle1Symbol;
// 设置要素层的渲染器
(featureLayer as IGeoFeatureLayer).Renderer = renderer as IFeatureRenderer;