您的位置:首页 > 编程语言 > C#

修改图层的symbol(AE+C#)

2009-05-10 19:37 337 查看
&a

取出一个图层的symbol 在其基础上对其进行修改

Code
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: