1. 程式人生 > >PIE SDK向量透明度、標註控制

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

視訊路徑

百度雲盤地址下/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 例截圖