Aragis Engine 二次开发中,如何根据符号库文件 设置图层样式
2013-09-06 09:54
561 查看
设置图层样式时,可传入参数设置图层样式,可直接调用该方法。
/// <summary> /// 根据符号库文件,设置图层样式 /// </summary> /// <param name="sServerStylePath">ServerStyle的路径</param> /// <param name="sGalleryClassName">样式中的类文件(如:Fill Symbols)</param> /// <param name="pFieldName">匹配字段名</param> /// <param name="pFeatureLayer">设置的图层</param> private void SetSymbol(string sServerStylePath, string sGalleryClassName, string pFieldName, IFeatureLayer pFeatureLayer) { try { //ServerStyleGallery对象 IStyleGallery pStyleGaller = new ServerStyleGalleryClass(); IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage; IEnumStyleGalleryItem pEnumSyleGalleryItem = null; IStyleGalleryItem pStyleGallerItem = null; IStyleGalleryClass pStyleGalleryClass = null; //创建UniqueValueRendererClass对象 IUniqueValueRenderer pUVRender = new UniqueValueRendererClass(); //使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件 pStyleGalleryStorage.AddFile(sServerStylePath); //遍历ServerGallery中的Class for (int i = 0; i < pStyleGaller.ClassCount; i++) { pStyleGalleryClass = pStyleGaller.get_Class(i); if (pStyleGalleryClass.Name != sGalleryClassName) continue; //获取EnumStyleGalleryItem对象 pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, ""); pEnumSyleGalleryItem.Reset(); //遍历pEnumSyleGalleryItem pStyleGallerItem = pEnumSyleGalleryItem.Next(); while (pStyleGallerItem != null) { //获取符号 ISymbol pSymbol = pStyleGallerItem.Item as ISymbol; pUVRender.AddValue(pStyleGallerItem.Name, "", pSymbol); pStyleGallerItem = pEnumSyleGalleryItem.Next(); } //设置唯一值符号化的字段个数和字段名 pUVRender.FieldCount = 1; pUVRender.set_Field(0, pFieldName); IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer; //设置IGeofeatureLayer的Renderer属性 pGFeatureLyr.Renderer = pUVRender as IFeatureRenderer; } System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem); System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass); } catch (Exception) { MessageBoxEx.Show("匹配字段符号失败!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
相关文章推荐
- AE开发:如何设置图层符号
- Arcgis Engine二次开发,如何获取符号库文件中的符号
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- rcp(插件开发)如何根据不同后缀文件打开不同编辑器?
- 如何在dede栏目设置中添加自定义字段(dede二次开发-纯抄贴)
- ObjectARX学习笔记(六)----如何设置点的样式和大小 CAD二次开发
- Skyline软件二次开发初级——7如何在WEB页面中的三维地图上设置颜色
- QGis二次开发基础 -- 矢量图层的显示样式
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- NO.161 如何做禅道二次开发(2):找到要修改的文件
- SkylineGlobe 如何实现二次开发加载KML文件
- SkylineGlobe 如何二次开发获取三维模型的BBOX和设置Tint属性
- 如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作(远程开发)
- Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象
- 一个CSS文件内如何设置多个body及多个DIV样式,并给出页面如何调用
- 前端开发:css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
- 基于Skyline的TerraExplorer6.1.1如何通过二次开发实现矢量图层的空间查询和属性查询
- .Net语言 APP开发平台——Smobiler学习日志:在手机应用开发中如何设置全局样式
- C# revit 二次开发 为线样式设置线型图案
- [word]如何批量根据章节编号,设置样式?