1. 程式人生 > >PIE SDK圖層樹命令繫結示例

PIE SDK圖層樹命令繫結示例

 

1. 功能簡介

    命令繫結是指通過控制元件事件的觸發,執行指定命令的方法。

    ICommand命令介面是PIE SDK中一個特別重要的介面。該介面能夠直接執行某個個動作,而不和地圖發生互動。

    IHookHelper主要用在自定義型別ICommand和ITool,通過設定設定Hook能夠進行控制元件引用的傳遞

2. 功能實現說明

2.1 實現思路及原理說明

圖層樹命令繫結

第一步

宣告命令類,繼承至BaseCommand。

第二步

重寫Enabled屬性和OnClick方法。

第三步

在指定的方法進行命令例項化並執行OnClick方法

2.2 核心介面與方法

介面/類

方法

說明

Controls. BaseCommand

OnClick()

點選方法

Carto.IHookHelper

 

鉤子

2.3 示例程式碼

專案路徑

百度雲盤地址下/PIE示例程式/圖層樹命令繫結說明文件

資料路徑

百度雲盤地址下/PIE示例資料/向量資料/Shape

視訊路徑

百度雲盤地址下/PIE視訊教程/圖層樹命令繫結.avi

示例程式碼

 1 方法(一)
 2 命令封裝
 3 //// <summary>
4 /// 刪除圖層命令 5 /// </summary> 6 public class DeleteLayerCommand : BaseCommand 7 { 8 public DeleteLayerCommand() 9 { 10 this.Caption = "刪除圖層"; 11 this.Name = "DeleteLayerCommand"; 12 this.ToolTip = "刪除圖層"; 13 this.Checked = true; 14 this.Enabled = false; 15 } 16 17 /// <summary> 18 /// 是否可用 19 /// </summary> 20 public override bool Enabled 21 { 22 get 23 { 24 if (m_Hook == null) return false; 25 return true; 26 } 27 protected set 28 { 29 base.Enabled = value; 30 } 31 } 32 33 /// <summary> 34 /// 單擊方法 35 /// </summary> 36 public override void OnClick() 37 { 38 if (!this.Enabled) return; 39 IPmdContents pmdContents = m_HookHelper.GetContent() as IPmdContents; 40 PIETOCNodeTag tag = pmdContents.CustomerProperty as PIETOCNodeTag; 41 42 pmdContents.FocusMap.DeleteLayer(tag.Layer); pmdContents.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 43 } 44 } 45 命令繫結 46 private void ToolStripMenuItem_DeleteLayer_Click(object sender, EventArgs e) 47 { 48 DeleteLayerCommand cmd = new DeleteLayerCommand(); 49 cmd.OnCreate(this.mapControlMain as IPmdContents); 50 cmd.OnClick(); 51 }
View Code

2.4 示例截圖

載入向量資料之後

 

刪除圖層操作