如何使用lyr文件中的符号来渲染图层
在符号化制图的时候,我们或许已经有了一个lyr的文件,该文件保留了我们符号化的信息,当我们在其他地方配图的时候可能会使用已有的lyr文件来符号化,那么AE是如何做到的呢?整个代码如下:
/// <summary> /// 保存lyr文件 /// </summary> /// <param name="pLayerFilePath"></param> /// <param name="pLayer"></param> public void SaveToLayerFile(System.String pLayerFilePath, ESRI.ArcGIS.Carto.ILayer pLayer) { if (pLayer == null) { return; } ESRI.ArcGIS.Carto.ILayerFile pLayerFile = new ESRI.ArcGIS.Carto.LayerFileClass(); if (System.IO.Path.GetExtension(pLayerFilePath) != ".lyr") return; if (pLayerFile.get_IsPresent(pLayerFilePath)) System.IO.File.Delete(pLayerFilePath); pLayerFile.New(pLayerFilePath); pLayerFile.ReplaceContents(pLayer); pLayerFile.Save(); } //替换过程 private void button13_Click(object sender, EventArgs e) { IFeatureLayer pFtLayer = axMapControl1.get_Layer(0) as IFeatureLayer; ILayer pLayer = GetFileLayer("c:\\Blocks.lyr"); if (pLayer != null) { if (pLayer is IFeatureLayer) { IGeoFeatureLayer pGeoLayer = pFtLayer as IGeoFeatureLayer; pGeoLayer.Renderer = (pLayer as IGeoFeatureLayer).Renderer; } } axMapControl1.Refresh(); } //获取lyr文件 ILayer GetFileLayer(string pFileName) { ILayerFile pLayerFile = new LayerFileClass(); pLayerFile.Open(pFileName); return pLayerFile.Layer; }
浙公网安备 33010602011771号