读取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-06 17:14:54

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

Java 库的建立方法及其实例

作者 ariesram 电子邮件地址 ariesram@linuxaid.com.cn, 或 ariesram@may10.ca 本文及本人所有文章均收集在bambi.may10.ca/~ariesram/articles/中. 本文授权给www.linuxaid.com.cn. 正文: 任何一种面向对象语言都有它的库.任何一种面向对象的语言也都离不开库的支持.用我们熟悉的 面向对象语言为例子,C++有STL,Java有API函数,具体到开发工具,Visual C++提供了MFC, Borlan

JS使用cookie设置样式的方法_javascript技巧

本文实例讲述了JS使用cookie设置样式的方法.分享给大家供大家参考,具体如下: var styleShow = ["blackgreen", "purple"]; var path = "/"; var StyleSwitch = { //设置样式 setStyleSheet: function (StyleName) { var i, a, main; for (i = 0; (a = document.getElementsByTagNa

JavaScript改变CSS样式的方法汇总

  JavaScript修改CSS有4种方法:1.修改节点style(内联样式);2.改变节点class或id;3.写入新的css;4.替换页面中的样式表.今天主要给大家介绍下前2种,因为后两种个人不是很推荐大家使用 JavaScript允许你即时的改变CSS样式,这样就可以将用户的眼球吸引到你想他们关注的地方上,并且提供较好的交互体验给力 . JavaScript修改CSS有4种方法: 修改节点style(内联样式); 改变节点class或id; 写入新的css; 替换页面中的样式表. 个人不

Word2013中自定义文档样式的方法

Word2013中自定义文档样式的方法         1.打开"开始"选项卡,单击"样式"组中的"样式"按钮 打开"样式"窗格,其中提供了Word 2013内置的样式供用户使用,如图1所示. 图1 打开"样式"窗格 注意 将鼠标指针放置到"样式"窗格中的某个选项上时,将能够显示该项所对应的字体.段落和样式的具体设置情况. 2.在功能区"样式"组中单击"新建

jQuery实现鼠标划过修改样式的方法

 本文实例讲述了jQuery实现鼠标划过修改样式的方法.分享给大家供大家参考.具体如下: 1 2 3 4 5 6 7 8 9 10 11 12 $(document).ready(function () { //默认情况下样式 $("input:text").attr("style","border:1px solid #7E9DB9;"); //鼠标移入样式 $("input:text").mouseover(functio

JQuery结合CSS操作打印样式的方法

 这篇文章主要介绍了JQuery结合CSS操作打印样式的方法,有需要的朋友可以参考一下 本节内容: JQuery.CSS操作打印样式.   一.添加打印样式   1,为屏幕显示和打印分别准备一个css文件,如下所示:   用于屏幕显示的css:    代码如下: <link rel="stylesheet" href="css/mainstylesheet.css" media="screen" />     用于打印的css:  

jQuery使用toggleClass方法动态添加删除Class样式的方法

这篇文章主要介绍了jQuery使用toggleClass方法动态添加删除Class样式的方法,实例分析了jQuery中toggleClass方法操作class样式的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery使用toggleClass方法动态添加删除Class样式的方法.分享给大家供大家参考.具体分析如下: jQuery通过toggleClass方法动态添加删除Class,一次执行相当于addClass,再次执行相当于removeClass,运行下面的代码

jQuery给多个不同元素添加class样式的方法

 这篇文章主要介绍了jQuery给多个不同元素添加class样式的方法,实例分析了addClass()方法添加样式的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jQuery给多个不同元素添加class样式的方法.分享给大家供大家参考.具体分析如下: jQuery可以通过addClass()方法给多个不同的html元素同时添加相同的class ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2

JQuery中操作Css样式的方法

 本篇文章主要是对JQuery中操作Css样式的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助  代码如下: //1.获取和设置样式   $("#tow").attr("class")获取ID为tow的class属性   $("#two").attr("class","divClass")设置Id为two的class属性.   //2.追加样式   $("#two").ad