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文档中包括了该函数,因此, ...
随机推荐
- jquery获取radio和select选中值
//jquery 获取radio选中值 <input type="radio" name="c_type" value="a" > ...
- windows多线程详解
转自:http://blog.csdn.net/zhouxuguang236/article/details/7775232 在一个牛人的博客上看到了这篇文章,所以就转过来了,地址是http://bl ...
- 使用SOUI开发的界面集锦
仿QQ管家界面
- 传引用 C(转)
转自:http://myturn.blog.hexun.com/15584978_d.html #include <iostream> using namespace std ; void ...
- 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...
- HDU 1561 The more, The Better 树形DP
The more, The Better Problem Description ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M ...
- python学习第三天
小结: 总体上,python是解释型语言,开源比较好,速度较慢,装逼神器,解释器较常用的是CPython,安装后python进入运行环境 exit()退出 第一个hello world : print ...
- 通信原理实践(六)——基带传输
一.基带传输引入 1.从数字带通传输说起 以上系统可以等价为: 这里"等价"的假设条件是 •信号通过滤波器不失真 •不存在码间串扰 意义:可以通过评估基带传输系统来获得数字带通传输 ...
- Linux学习笔记(14)文件系统管理
1 回顾分区与系统 (1)分区类型 Linux的分区一般包括主分区,扩展分区和逻辑分区.其中: 主分区最多只能分4个: 扩展分区只能有一个,也算作主分区的一种,即主分区加扩展分区最多有4个.但扩展分区 ...
- Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)
Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...