ArcEngine中加载和读取Style文件
2011-01-28 08:45
555 查看
首先使用接口装载.style文件,注意.style文件需要用到ESRI.ArcGIS.Framework.StyleGalleryClass类,而非ServerStyleGallery类,这个类是用来读取.serverstyle文件的
加载Sytle文件中某个指定的Symbol(以Marker为例):
附图:StyleManager,看其中左边树状菜单,第一级节点(ESRI.style),即为StyleSet,对应get_Items函数的第二个参数,第二级节点(例如Reference System等)即为ClassName,对应第一个参数,右侧的列表中,可以看到每一个元素的Category,对应第三个参数
//获取现有的Styles,初始状态下,styleGalleryStorage中是没有东西的,但styleGalley里边是有东西的(ESRI默认那些样式) IStyleGallery styleGalley = new ESRI.ArcGIS.Framework.StyleGalleryClass(); IStyleGalleryStorage styleGalleryStorage = styleGalley as IStyleGalleryStorage; int styleCount = styleGalleryStorage.FileCount; //判断所选择的文件是否已经装载,若尚未加载,则加载之 bool styleExit = false; for (int i = 0; i < styleCount; i++) { if (styleGalleryStorage.get_File(i) == this.pathBox.Text) styleExit = true; } if (styleExit == false) styleGalleryStorage.AddFile(Path);
加载Sytle文件中某个指定的Symbol(以Marker为例):
//加载Style文件中某个指定的Symbol IStyleGalleryItem styleGalleryItem; IEnumStyleGalleryItem enumStyleGalleryItem = null; //加载某个Marker Symbol string markerSymbolName = "TestMarker1"; //这里三个参数,第一个是ClassName,也就是StyleManager中右边树状菜单中的第二级节点名(如Reference Systems,Labels,Marker Symbols等),可以参考下面的图 //第二个参数是StyleSet名,若是自定义的Style文件的话,一般就是文件路径,也可以参考StyleManager中右边树状菜单的第一级节点名(如D:/test.style),可以参考下面的图 //第三个参数是Category名,使用""的话会将该Class和StyleSet下的所有内容都列出来,若指定某个Category,则仅列出该类别下的内容 enumStyleGalleryItem = styleGalley.get_Items("Marker Symbols", styleset, ""); enumStyleGalleryItem.Reset(); styleGalleryItem = enumStyleGalleryItem.Next(); while (styleGalleryItem != null) { if (styleGalleryItem.Name == markerSymbolName) { IMarkerSymbol symbol = (IMarkerSymbol)styleGalleryItem.Item; break; } styleGalleryItem = enumStyleGalleryItem.Next(); } System.Runtime.InteropServices.Marshal.ReleaseComObject(enumStyleGalleryIte
附图:StyleManager,看其中左边树状菜单,第一级节点(ESRI.style),即为StyleSet,对应get_Items函数的第二个参数,第二级节点(例如Reference System等)即为ClassName,对应第一个参数,右侧的列表中,可以看到每一个元素的Category,对应第三个参数
相关文章推荐
- ArcEngine中加载和读取Style文件或.serverstyle文件
- 从资源文件里加载文件或读取资源(C#)
- SVN更新错误:类加载失败,无法读取项目文件"web.csproj"
- Silverligth项目加载问题 无法读取项目文件“SL1201.csproj”。请确认 声明中的路径正确,且磁盘上存在该文件。
- [无法读取项目文件xxxx, xxx未能加载项目文件,名称不能以“<”字符(十六进制值 0x3C)开头]异常的处理方法
- 读取目录下所有目录和文件加载到TreeView
- Java中框架的概念,以及从配置文件中读取配置信息并加载指定类
- MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例
- Spark中加载本地(或者hdfs)文件以及 spark使用SparkContext实例的textFile读取多个文件夹(嵌套)下的多个数据文件
- Jboss5.1类加载及配置文件读取解密
- 读取配置文件加载背景图片,音乐
- Spring源码分析:Bean加载流程概览及配置文件读取
- Java中框架的概念,以及从配置文件中读取配置信息并加载指定类
- C#不用ArcEngine,生成Shp文件(五)---------读取.shx文件和生成.shx文件
- Java读取Properties文件 Java加载配置Properties文件
- CAD文件(dwg)的加载-ArcEngine
- metro style app读取安装包里文件的异常E_ACCESSDENIED
- 利用Python的 with open功能加载读取py本地当前目录文件问题
- Java中框架的概念,以及从配置文件中读取配置信息并加载指定类
- servlet中怎样加载配置文件以及读取配置文件的值