UniqueValueRenderer唯一值渲染
来源:互联网 发布:千语淘客助手软件下载 编辑:程序博客网 时间:2024/05/17 22:28
为了使地图更加美观,我们可以利用渲染来实现,比如要是某一图层中某一字段下的不同值的要素显示不同颜色,以此来区分,可以通过UniqueValueRender唯一值渲染器。唯一值渲染的定义是根据要素属性值来设置地图符号,具有相同属性值得要素采用相同的符号,而属性值不同的要素则采用不同的符号。由以上定义可知,唯一值渲染法的基本步骤是,设置要渲染的属性字段,找到该字段的不同值设置不同的符号。下面采用XAML和C#代码两种方式实现,具体如下:
一、XAML代码
具体代码的实现时,与实现思路刚好是反的。
1、设置不同值得不同符号
以静态资源的方式实现:
<Grid.Resources>
<esri:PictureMarkerSymbol x:Key="PQT" Height="30" Width="30" OffsetX="15" OffsetY="15" Source="Images\Person24.png" /><!--用的是点图片符号-->
<esri:PictureMarkerSymbol x:Key="PZYH" Height="30" Width="30" OffsetX="15" OffsetY="15" Source="Images\PersonGreen48.png" />
<esri:PictureMarkerSymbol x:Key="PMY" Height="30" Width="30" OffsetX="15" OffsetY="15" Source="Images\PersonBlue48.png" />
<esri:PictureMarkerSymbol x:Key="PMZ" Height="30" Width="30" OffsetX="15" OffsetY="15" Source="Images\PersonRed48.png" />
<Grid.Resources>
2、将符号赋值给不同值
同样以静态资源形式实现
<Grid.Resources>
<esri:UniqueValueRenderer x:Key="PeopleUniqueValueRenderer" Attribute="Class" >
<esri:UniqueValueRenderer.Infos><!--设置不同符号的不同值-->
<esri:UniqueValueInfo Value="类别1" Symbol="{StaticResource PZYH}" />
<esri:UniqueValueInfo Value="类别2" Symbol="{StaticResource PMZ}" />
<esri:UniqueValueInfo Value="类别3" Symbol="{StaticResource PMY}" />
<esri:UniqueValueInfo Value="其他" Symbol="{StaticResource PQT}" />
</esri:UniqueValueRenderer.Infos>
</esri:UniqueValueRenderer>
</Grid.Resources>
3、将渲染器赋值给要渲染的图层
<esri:FeatureLayer ID="People" DisableClientCaching="True" AutoSave="False" **** Renderer="{StaticResource PeopleUniqueValueRenderer }" /><!--Render属性就是渲染属性-->
二、C#代码
C#代码的实现思路与XAML一致,这里不再赘述,只贴代码
/////设置符号信息
UniqueValueInfo info1 = new UniqueValueInfo();
info1.Value = "类别1";
info1.Symbol = new PictureMarkerSymbol() { Height = 30, Width = 30, OffsetX = 15, OffsetY = 15, Source = new BitmapImage(new Uri(@"1.png", UriKind.Absolute)) };
UniqueValueInfo info2 = new UniqueValueInfo();
info2.Value = "类别2";
info2.Symbol = new PictureMarkerSymbol() { Height = 30, Width = 30, OffsetX = 15, OffsetY = 15, Source = new BitmapImage(new Uri(@"2.png", UriKind.Absolute)) };
UniqueValueInfo info3 = new UniqueValueInfo();
info3.Value = "类别3";
info3.Symbol = new PictureMarkerSymbol() { Height = 30, Width = 30, OffsetX = 15, OffsetY = 15, Source = new BitmapImage(new Uri(@"3.png", UriKind.Absolute)) };
////设置渲染器信息
UniqueValueRenderer render = new UniqueValueRenderer();
render.Field = "Class";//这里建议用Field而不用Attribute设置渲染字段
render.Infos.Add(info1);
render.Infos.Add(info2);
render.Infos.Add(info3);
////渲染图层
(map1.Layers["People"] as FeatureLayer).Renderer = render;
效果如下
还有SimpleRender和ClassBreaksRender也可以用类似的方法实现。
- UniqueValueRenderer唯一值渲染
- 唯一值渲染
- Openlayers2唯一值渲染
- ArcEngine唯一值渲染UniqueValueRender图层
- AO+C++实现唯一值渲染
- c#+AE-图层唯一值渲染
- 转载---Arcgis Server+Asp.net(C#)的唯一值渲染
- Arcgis Engine栅格渲染(唯一值)IRasterUniqueValueRenderer
- ArcEngine 地图符号化,唯一值单字段,多字段渲染
- arcgis for js UniqueValueRenderer
- UniqueValueRenderer的DefaultSymbol及DefaultLabel设置
- loadrunner生成唯一值
- Datatable 唯一值问题解决
- ArcEngine 唯一值查询
- 唯一值符号化
- 字段唯一值
- Mysql设置唯一值
- 唯一
- 如何制作chm格式的帮助文件
- Activity 的启动模式
- Bootstrap前端开发框架
- SDRAM容量计算
- 本地不安装oracle,远程连接数据库
- UniqueValueRenderer唯一值渲染
- DirectUI笔记(一)窗口子类化
- CentOS6 中修改 mysql5 数据文件位置
- eclipse项目出现红色叉叉解决方案
- debian下使用siege进行压力测试
- eclipse中jquery.js文件有错误提示的解决办法
- Proteus下载后再安装的问题
- 暑假放假为什么不能提前回家??
- MyEclipse 8.5 优化实例