1. 程式人生 > >取出一個圖層的symbol 在其基礎上對其進行修改

取出一個圖層的symbol 在其基礎上對其進行修改

earch con sender true search nbsp return eat cursor

取出一個圖層的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;
}

取出一個圖層的symbol 在其基礎上對其進行修改