修改图层的symbol(AE+C#)
取出一个图层的symbol 在其基础上对其进行修改
private void button1_Click(object sender, EventArgs e)
{
mp;nbsp; //设定要改变symbol的图层
ILayer pLayer=m_mapControl.get_Layer(0);
IGeoFeatureLayer pGeoFeatLayer = pLayer as IGeoFeatureLayer;
//得到此图层的symbol
ISimpleMarkerSymbol pMarkerSymbol=new SimpleMarkerSymbolClass();
pMarkerSymbol=GetFeatureLayerSymbol(pLayer) as ISimpleMarkerSymbol;
//对symbol进行改变操作
pMarkerSymbol.Size=20;
//把改变后的symbol赋给此图层
ISimpleRenderer pRenderer=new SimpleRendererClass();
pRenderer.Symbol=pMarkerSymbol as ISymbol;
pGeoFeatLayer.Renderer = pRenderer as IFeatureRenderer;
}
/// <summary> 得到指定图层的symbol</summary>
/// <param name="layer"></param>
/// <returns></returns>
public ISymbol GetFeatureLayerSymbol(ILayer layer)
{
ISymbol pSymbol = null;
IGeoFeatureLayer pGeoFeatLayer = (IGeoFeatureLayer)layer;
IFeatureClass pFeatClass = pGeoFeatLayer.FeatureClass;
IFeatureCursor pFeatCursor = pFeatClass.Search(null, true);
IFeature pFeature = pFeatCursor.NextFeature();
if (pFeature == null)
{
pFeature = pFeatCursor.NextFeature();
}
else
{
IFeatureRenderer pFeatRen;
pFeatRen = pGeoFeatLayer.Renderer;
pSymbol = pFeatRen.get_SymbolByFeature(pFeature);
}
return pSymbol;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步