读取Style符号库样式的方法
以前进行符化的时候一般都是自定义Symbol,或者使用SymbologyControl进行选择,由于实际需要,我们来读取一下样式管理器中的样式。在ArcMap中打开如下:style下有很多样式类,每个类下面有各种样式。

读取Style符号库样式的步骤如下:
第一步,获取Style的位置,通常在ArcGIS安装目录下,有个Sytles文件夹。关于获取ArcGIS的安装路径请参考:获取ArcGIS安装路径
第二步,新建样式管理集工具StyleGallery,并指定样式文件位置;
第三步,遍历获取样式文件类,即样式管理器ESRI.Style下的22个类,这里我们要获取名称为"Fill Symbols";
第四步,遍历样式文件类下名为"10% Simple hatch"样式文件,并返回为Symbol。
第五步,符号化要素图层:将Symbol赋给SimpleRenderer的Symbol属性,将图层转为GeoFeatureLayer,将SimpleRenderer赋给GeoFeatureLayer的Renderer属性,在Map中加载显示GeoFeatureLayer。
/// <summary>
/// 从Style符号库获取指定的符号
/// </summary>
/// <param name="sServerStylePath">符号库路径</param>
/// <param name="sGalleryClassName">样式类名称</param>
/// <param name="symbolName">样式名称</param>
/// <returns>Symbol</returns>
public ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
{
//1.加载样式文件
ISymbol pSymbol = null;
IStyleGallery pStyleGaller = new ServerStyleGallery();//样式管理集工具
IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;//样式文件管理
pStyleGalleryStorage.TargetFile = sServerStylePath;//serverStylePath为一字符串型,表示ServerStyle文件位置
//2.获取样式子类
//可通过遍历样式文件里的子类,然后找到与目标子类名称相同的样式子类即可
IStyleGalleryClass pStyleGalleryClass = null;//样式子类对象
for (int i = 0; i < pStyleGaller.ClassCount; i++)
{
pStyleGalleryClass = pStyleGaller.get_Class(i);
if (pStyleGalleryClass.Name != sGalleryClassName)
continue;
IEnumStyleGalleryItem pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");//获取样式子类
pEnumSyleGalleryItem.Reset();
//3.遍历pEnumSyleGalleryItem
IStyleGalleryItem pStyleGallerItem = null;
pStyleGallerItem = pEnumSyleGalleryItem.Next();
while (pStyleGallerItem != null)
{
Console.WriteLine(pStyleGallerItem.Name);
if (pStyleGallerItem.Name == symbolName)
{
//4.获取符号
pSymbol = pStyleGallerItem.Item as ISymbol;
break;
}
pStyleGallerItem = pEnumSyleGalleryItem.Next();
}
}
return pSymbol;
}
调用:
GetSymbol(ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path + @"\\Styles\\ESRI.ServerStyle", "Fill Symbols", "10% Simple hatch");

当然,使用SymbologyControl来进行交互体验效果会更好!
本文参考:
http://blog.csdn.net/rrrrssss00/article/details/6167497#
http://blog.sina.com.cn/s/blog_694deb730100nhna.html
读取Style符号库样式的方法的更多相关文章
- ArcEngine 9.3 学习笔记(六):图层符号化(COlorRamp,MarkerSymbol,LineSymbol,FillSymbol,TextSymbol,3DChartSymbol,使用ServerStyle符号库,FeatureRender,RasterRender)
		第四章 图层符号化 AE9.3 提供了SymbologyControl控件,用于显示ARCGIS符号库中的符号. 组件库中的组件对象分为Color(颜色),Symbol(符号),Render(渲染)三 ... 
- ArcGIS 10.1 中的style和serverstyle及制作方法
		图层的符号都是随机的,动态变化的,所以不利于图层的美观.还有一点就是符号有增加电子地图可读性的功能. Desktop的符号文件 把要用的符号用desktop的style manage制作相应符号,并把 ... 
- style设置/获取样式的问题  和  offsetWidth/offsetHeight的问题
		style设置/获取样式的问题:1.js通过style方法 --加样式:加的是行间样式 oDiv.style.width="20"+'px'; --取样式:取得是行间样 ... 
- JQuery中操作Css样式的方法
		JQuery中操作Css样式的方法//1.获取和设置样式 $("#tow").attr("class")获取ID为tow的class属性 $("#tw ... 
- ACEXML解析XML文件——我是如何学习并在短时间内掌握一个库的使用方法的
		最近做的C++项目中需要使用xml文件保存一些信息,程序启动时会读取这些信息.最终经过主程的评测,决定使用ACEXML库来读取解析XML文件. 好吧,至于为什么选择ACEXML库,我就不说了.既然选择 ... 
- 关于设置SQLPLUS提示符样式的方法----登陆配置文件,动态加载提示符
		工作中用到 sqlplus mdsoss/mdsoss, 所以来了解一下sqlplus (C shell .cshrc文件里中alisa) 关于设置SQLPLUS提示符样式的方法 12638阅读 1评 ... 
- python计算文件的行数和读取某一行内容的实现方法
		一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(op ... 
- javascript中获取非行间样式的方法
		我们都知道一般在javascript中获取样式一般用的是nodeObj.style.attr这个属性的,但是这个属性只能获取行间样式非行间样式比如写在样式表中的样式那么用nodeObj.style.a ... 
- js中style.display=""无效的解决方法
		本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ... 
随机推荐
- Java 接口与抽象类
			抽象类 <JAVA编程思想>一书中,将抽象类定义为"包含抽象方法的类".只要用abstract修饰的类就是抽象类,抽象类不一定包含抽象方法,但有抽象方法的类一定是抽象类 ... 
- java多线程技术之(callable和future)
			接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来了,但是Runnab ... 
- bzoj 3997 Dilworth定理
			看到这道题感觉像是网络流,如果没有权值,可以用DAG最小路径覆盖,有权值,感觉可以求一个上下界最小可行流,但内存卡了....时间估计也悬. 正解要用到一些数学知识,这里梳理一下: 定义: 偏序关系: ... 
- yyyy-MM-dd HH:mm:ss is Invalid Date in Safari, IE等浏览器下
			一.踩坑背景 在做某个项目的过程中,系统要求兼容safari,在使用Element-ui情况下,用到了datepicker组件,但是datepicker在type为daterange情况下,页面首次加 ... 
- wikioi 1017 乘积最大
			dp[i][j]=max(dp[i][j],dp[t][k-1]*mapn[t+1][i]); dp[i][j]代表从0-i之间有j个乘号,mapn[i][j]表示第i位到第j位的数究竟是多少 #in ... 
- wikioi 1014 装箱问题(背包)
			题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ... 
- 介绍一下开源项目FastAnimationWithPOP
			介绍一下开源项目FastAnimationWithPOP JUL 23RD, 2014 这是一个非常easy的动画框架,基于Facebook的POP库. 使用它你就能够在故事版中以0行代码的代价来加入 ... 
- LNMP下FTP服务器Pureftpd的安装和使用
			LNMP一键安装包里的Pureftpd安装脚本是需要MySQL支持的,安装前需要已经安装好LNMP,这个自带一个PHP编写的用户管理界面. 安装 进入lnmp解压后的目录,执行:./pureftpd. ... 
- Android Tasker应用之自动查询并显示话费流量套餐信息
			Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ... 
- Windows+VS2012环境下编译调试MySQL源码 转
			http://m.blog.csdn.net/blog/SnowyWolf/18952643 
