AE唯一值符号化的流程以及过程
唯一值符号化的流程以及过程(转)
一、获取ServerStyle库中的符号
| 接口名称 | 功能描述 |
| IStyleGallery | 用于管理Style Gallery |
| IStyleGalleryStorage | 管理Style Gallery中的符号库文件 |
| IStyleGalleryClass | 控制符号库中Style Gallery Class |
| IEnumStyleGalleryItem | 枚举一组Style Gallery items |
| IStyleGalleryItem | 定义Style Galle ry itme |
获取ESRI符号库中名称为Rose的符号的流程:
///<summary>
///获取符号库中符号
///</summary>
///<param name="sServerStylePath">符号库全路径名称</param>
///<param name="sGalleryClassName">GalleryClass名称</param>
///<param name="symbolName">符号名称</param>
///<returns>符号</returns> private ISymbol GetSymbol(string sServerStylePath, string sGalleryClassName, string symbolName)
{
try
{
//ServerStyleGallery对象
IStyleGallery pStyleGaller = new ServerStyleGalleryClass();
IStyleGalleryStorage pStyleGalleryStorage = pStyleGaller as IStyleGalleryStorage;
IEnumStyleGalleryItem pEnumSyleGalleryItem=null;
IStyleGalleryItem pStyleGallerItem = null;
IStyleGalleryClass pStyleGalleryClass = null;
//使用IStyleGalleryStorage接口的AddFile方法加载ServerStyle文件
pStyleGalleryStorage.AddFile(sServerStylePath); //遍历ServerGallery中的Class for (int i = ; i < pStyleGaller.ClassCount; i++)
{
pStyleGalleryClass = pStyleGaller.get_Class(i);
if (pStyleGalleryClass.Name != sGalleryClassName)
continue;
//获取EnumStyleGalleryItem对象
pEnumSyleGalleryItem = pStyleGaller.get_Items(sGalleryClassName, sServerStylePath, "");
pEnumSyleGalleryItem.Reset();
//遍历pEnumSyleGalleryItem
pStyleGallerItem = pEnumSyleGalleryItem.Next();
while (pStyleGallerItem != null)
{
if (pStyleGallerItem.Name == symbolName)
{
//获取符号
ISymbol pSymbol = pStyleGallerItem.Item as ISymbol;
System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
return pSymbol;
}
pStyleGallerItem = pEnumSyleGalleryItem.Next();
}
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(pEnumSyleGalleryItem);
System.Runtime.InteropServices.Marshal.ReleaseComObject(pStyleGalleryClass);
return null;
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return null;
}
}
二、进行唯一值符号化
1.准备点数据,添加属性字段“类别”;
2.并为要素“类别”属性值分别设置为“Hospital2”,“School 1”,“Airport”三种属性值。
3.实现唯一值符号化功能
///<summary>
///设置要素图层唯一值符号化
///</summary>
///<param name="pFeatureLayer"></param>
private void UniqueValueRenderFlyr(IFeatureLayer pFeatureLayer)
{
try
{
//创建UniqueValueRendererClass对象
IUniqueValueRenderer pUVRender = new UniqueValueRendererClass();
List<string> pFieldValues= new List<string>();
pFieldValues.Add("Hospital 2");
pFieldValues.Add("School 1");
pFieldValues.Add("Airport");
for(int i=;i<pFieldValues.Count;i++)
{
ISymbol pSymbol= new SimpleMarkerSymbolClass();
pSymbol =GetSymbol(@"C:Program FilesArcGISStylesESRI.ServerStyle","Marker Symbols",pFieldValues(i));
//添加唯一值符号化字段值和相对应的符号
pUVRender.AddValue(pFieldValues,pFieldValues,pSymbol);
} //设置唯一值符号化的字段个数和字段名
pUVRender.FieldCount = ;
pUVRender.set_Field(, "类别");
IGeoFeatureLayer pGFeatureLyr = pFeatureLayer as IGeoFeatureLayer;
//设置IGeofeatureLayer的Renderer属性
pGFeatureLyr.Renderer = pUVRender as IFeatureRenderer;
}
catch (Exception Err)
{
MessageBox.Show(Err.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void button1_Click(object sender, EventArgs e)
{
IFeatureLayer pFeatureLayer = this.axMapControl1.get_Layer() as IFeatureLayer;
UniqueValueRenderFlyr(pFeatureLayer);
this.axMapControl1.Refresh();
}
原文章出处:http://www.cnblogs.com/zhangjun1130/archive/2012/04/17/2454035.html
AE唯一值符号化的流程以及过程的更多相关文章
- 转载:ArcEngine 唯一值查询
转载 http://virgoooos.iteye.com/blog/512329 转载:http://blog.csdn.net/mydriverc/archive/2007/07/26/17092 ...
- 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)
一.在 .NET 中生成1.直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛.GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计 ...
- mysql 获取全局唯一值
在涉及数据库存储数据的时候,经常会遇到唯一值问题,有的是主键带来的限制,有的则是业务上的需要. 下面介绍几种唯一值的获取或者生产方法: 先建一个测试用的表tbl_user,有三个字段:Id.Name. ...
- 转:C#生成唯一值的方法汇总
这篇文章主要介绍了C#生成唯一值的方法汇总,有需要的朋友可以参考一下 生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: 一.在 .NET ...
- C#生成唯一值的方法汇总
生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: https://www.cnblogs.com/xinweichen/p/4287640 ...
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
获取字段唯一值工具- -ArcPy和Python案例学习笔记 目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...
- SQL表两列取一列唯一值的记录
问下SQL表两列取一列唯一值的 A列 B列 C列 1001 AA 2012-01-02 1001 BB 2012-02-05 100 ...
- MATLAB 的unique函数——数组矩阵的唯一值
MATLAB 的unique函数——求数组矩阵的唯一值 相关MathWork文档见此:unique数组中的唯一值 1.C = unique(A) 返回与 A 中相同的数据,但是不包含重复项.C 已按照 ...
- Oracle12c中性能优化新特性之新增APPROX_COUNT_DISTINCT 快速唯一值计数函数
Oracle11g中,为了改善DBMS_STATS包收集统计信息时的唯一值计数功能,增加了 APPROX_COUNT_DISTINCT函数,但文档中未记载.Oracle12c文档中包括了该函数,因此, ...
随机推荐
- 攻城狮在路上(叁)Linux(二十三)--- linux磁盘参数修改(设备代码、设备名)
一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hd ...
- Debian下安装vim
问题描述:安装完系统以后,刚要打算开始写程序,发现,vim还没有装,用su -切换到root后 直接运行apt-get install vim,提示插入disc源,然后回车,陷入无法解决的状态. 上网 ...
- 11g新特性-如何禁用自动统计信息收集作业
一.11g中auto stats gather job被集成到了auto task中. SQL> select client_name,status from DBA_AUTOTASK_CLIE ...
- Apache与Tomcat联系及区别(转)
Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行.Apache是Web服务器而Tomcat是Java应用服务器. A ...
- Codeforces Round #337 (Div. 2) D. Vika and Segments 线段树 矩阵面积并
D. Vika and Segments Vika has an infinite sheet of squared paper. Initially all squares are whit ...
- LISP学习-开发环境以及hello world
我想说说关于common lisp的开发环境问题,学习一个新的语言,如何最简单的搭建一个开发环境是至关重要的,它应该不让你在其他方面花费太多的精力,而只专注于学习语言本身. 其实我刚开始尝试的并不是c ...
- Arduino101学习笔记(二)—— 一些注意的语法点
1.宏定义 2.整数常量 3.支持C++ String类 (1)String 方法 charAt() compareTo() concat() endsWith() equals() equalsIg ...
- 【SQL Sever】将SQL Sever中的一个数据表的数据导出为insert语句
例如:这SQL Sever中的一张数据表,想要将这张数据表中的数据 转化成一个一个的insert语句存储在txt的文档中,那么不论走到那里这个insert语句一执行,我们就能将这个数据表中的数据 ...
- python图像卷积
import cv2import numpy as np #filier 2Dsavepath = "E:\\"image = cv2.imread('E:\\me.jpg');c ...
- js与jquery异同
大家都知道jquery是js的一个库,很多东西大多数简写了,让js写起来特别的方便.但是对与学习的人来说,最好是先学会了js再去学jquery会更好.在学得过程中你会发现两者实现的原理是差不多的,但是 ...