PIE SDK矢量透明度、標註控制

 

1. 功能簡介

    透明度和標註是矢量圖層的相關屬性;圖層透明值是0-100間的整數,標註是顯示在地圖上的文字信息,它是出圖中不可或缺的重要元素。標註的樣式豐富,而且放置位置靈活。ide

2. 功能實現說明

2.1. 實現思路及原理說明

矢量透明值spa

第一步code

獲取圖層的Renderorm

第二步視頻

修改Render的透明值屬性blog

第三步教程

觸發渲染改變事件接口

矢量標註事件

第一步ci

設置圖層顯示標註屬性爲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. 例截圖

相關文章
相關標籤/搜索