PIE SDK矢量透明度、标注控制

 

1. 功能简介

    透明度和标注是矢量图层的相关属性;图层透明值是0-100间的整数,标注是显示在地图上的文字信息,它是出图中不可或缺的重要元素。标注的样式丰富,并且放置位置灵活。

2. 功能实现说明

2.1. 实现思路及原理说明

矢量透明值

第一步

获取图层的Render

第二步

修改Render的透明值属性

第三步

触发渲染改变事件

矢量标注

第一步

设置图层显示标注属性为True

第二步

设置标注字段

第三步

触发渲染改变事件

2.2. 核心接口与方法

矢量透明值

接口/类

方法

说明

Carto. IFeatureRender

Transparency

透明值,0~100之间整数

矢量标注

 

Carto. IFeatureLayer

DisplayAnnotation

图层是否显示注记

AnnoProperties

图层注记属性

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/05.矢量透明和标注

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/05.矢量透明和标注.avi

示例代码

 1 //设置透明度和标注
 2     if (mapControlMain.ActiveView.CurrentLayer == null) return;
 3     IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
 4     if (featureLayer == null) return;
 5     FormTransparent frm = new FormTransparent(featureLayer);//通过窗体去设置透明值和标注字段
 6     frm.ShowDialog();
 7     if (frm.DialogResult == DialogResult.OK)
 8     {
 9         //设置透明度
10         int value=frm.TransparentValue;//透明值
11         string fieldName=frm.FieldName;//标注字段
12 
13         //*******透明值设置********
14         //透明值,0-100间的整数
15         if (value > 100 || value < 0)
16             return;
17         if (featureLayer.Render == null)
18             return;
19         //设置透明值
20         featureLayer.Render.Transparency = value;
21                
22         //*******标注设置********
23         //判断是否为空、是否包含该字段
24         if (fieldName == "" || featureLayer.FeatureClass.GetFields().GetFieldIndex(fieldName) == -1)
25             return;
26         //是否显示标注
27         if (!featureLayer.DisplayAnnotation)
28         {
29             featureLayer.DisplayAnnotation = true;
30         }
31         featureLayer.AnnoProperties.AnnoField = fieldName;
32         featureLayer.RaiseRenderChanged();     mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
33     } 
View Code

2.4. 例截图

posted @ 2018-12-24 10:35  PIESAT  阅读(676)  评论(0编辑  收藏  举报