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 } |