博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读取Style符号库样式的方法
阅读量:6241 次
发布时间:2019-06-22

本文共 2026 字,大约阅读时间需要 6 分钟。

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

读取Style符号库样式的步骤如下:

第一步,获取Style的位置,通常在ArcGIS安装目录下,有个Sytles文件夹。关于获取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://qscia.baihongyu.com/

你可能感兴趣的文章
Zabbix迁移
查看>>
centos设置了fqdn后依然提示unknown host的解决方法
查看>>
京东商城CEO刘强东:下一个马云
查看>>
hadoop官方文档学习笔记(1)——resource manager HA
查看>>
Apache配置禁止访问目录,报403
查看>>
Ubuntu 查看和杀死进程
查看>>
Linux 系统中如何查看日志(常用命令)
查看>>
apache日志记录分析
查看>>
COM2 --- 小例子
查看>>
Cisco 交换机 升级 IOS
查看>>
火狐4浏览器动态下载统计背后的SQL技术
查看>>
VMDK虚拟硬盘文件丢失,虚拟机无法启动的解决办法
查看>>
S5PV210-arm-裸机-i2c
查看>>
oracle linux 5.8安装oracle 11g rac 第一章:配置实验环境
查看>>
浏览器: Internet Explorer 7 快捷键
查看>>
【Exchange 2019 設置技巧】修改默認附件大小
查看>>
Centos 6.9中 http-2.2 中的一些基本操作和 https 的实现
查看>>
使用QueryTables生成Excel数据时发生错误
查看>>
活动目录实战之十 多台windows 2003 活动目录至win 2008 r2迁移实战
查看>>
我比我的领导差在哪
查看>>