读取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

时间: 2024-10-10 17:02:35

读取Style符号库样式的方法的相关文章

1、HTML+DIV+CSS零基础快速入门到制作企业站视频课程_8 css 3种样式引用方法&lt;link&gt;&lt;style&gt;

0.行内样式添加CSS <p style="color: red;">这是一个段落</p> 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>css</title> 6 </head> 7 <body> 8 <p&

ArcGIS教程:ArcGIS符号库制作

1. 需要的软件环境 1)ArcMap 9.X 2)Font Creator 5.X 2. 二维符号库制作方法 ArcGIS中制作二维符号库的方法可归结为以下四种: 1)基于ArcMap中已有符号制作符号库 2)基于图片制作符号库 3)基于TrueType字体制作符号库 4)多种方式组合制作符号 不论采用上述何种方法进行符号制作准备,最终都需要在ArcMap中Style. Manager进行符号制作.您可以打开ArcMap,从菜单Tools-〉Style. Manager 进入,如下图所示. 2

ArcGIS 10.1 中的style和serverstyle及制作方法

图层的符号都是随机的,动态变化的,所以不利于图层的美观.还有一点就是符号有增加电子地图可读性的功能. Desktop的符号文件 把要用的符号用desktop的style manage制作相应符号,并把他存成style文件.该文件实际为mdb数据库.Style文件对应于desktop,在desktop开发包中有相应的类(StyleGallery类 )支持该文件的读取. Arcgis Engine符号文件 Arcgis engine的符号文件的扩展名为serverstyle,在目前argis 版本中

HTML文档中应用css样式的方法总结

在HTML文档中应用css样式大致有三种方法:1.link标签链接外部样式表:2.使用style元素包含样式表:3.使用style属性,即内联样式 一.link标签链接外部样式表 先看一条较为标准的link标记语句: <link rel="stylesheet" type="text/css" href="main.css" media="all" /> link标记必须放在head元素中,且不能放在其他元素(如t

javascript 获取元素样式的方法

javascript 获取元素样式常用方法. Javascript获取CSS属性值方法:getComputedStyle和currentStyle 1 .对于元素的内联CSS样式(<div style="color:#369">hello</div>),可以直接使用element.style.color来直接获取css属性的值: 2. 但是对于外部定义的css样式使用这种方式就无法获取了,而且IE浏览器和其他标准浏览器(Firefox,Chrome,Opera,

js中style.display=&quot;&quot;无效的解决方法

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码代码如下: <style> #name {     display:none; }</style></head><body><div id=

获取非行间样式的方法

了解css三种写入样式的方法 1. 内联: 写在style标签内 1 <style> 2 div { 3 width: 300px; 4 height: 300px; 5 border-width: 1px; 6 border-style: solid; 7 border-color: black; 8 background-color: pink; 9 } 10 </style> 2. 外联: 使用link标签导入 1 <link rel="stylesheet&

css表头固定样式的方法

这篇文章主要为大家介绍了css表头固定样式的方法,涉及样式的相关操作技巧,需要的朋友可以参考下 本文实例讲述了css表头固定样式的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <style type="text/css">/*表头样式*/.scll {position: relative;top: expression(this.offsetParent.scrollTop);//background: url(../img/tab_15.gif)

【转载】python计算文件的行数和读取某一行内容的实现方法

一.计算文件的行数 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了: count = len(open(filepath,'rU').readlines()) 如果是非常大的文件,上面的方法可能很慢,甚至失效.此时,可以使用循环来处理: count = -1for count, line in enumerate(open(thefilepath, 'rU')):    passcount +