zoukankan      html  css  js  c++  java
  • PIE SDK图层树伙伴控件示例

    1.  功能简介

        TocControl控件的主要作用是显示当前加载的图层有哪些、采用什么样的符号等,目的是使用户对当前加载的数据和结构有一个总体的把握。与之相关联的伙伴控件有MapControl,PageLayoutControl。

        TOCControl 为用户提供了一个交互式的环境,如果 TOCControl 控件的伙伴控件是 MapControl 控件,当我们将 TOCControl 控件中图层删掉是,MapControl 控件中相应的图层也会被删掉。

        当地图视图和制图视图都存在的时候,TocControl控件要与PageLayoutControl控件进行绑定,MapControl的map和PageLayoutControl的map关联,这样才能确保地图视图和制图视图的数据保持一致。

     

    [图层树-伙伴控件对应]

    2.  功能实现说明

    一、界面设计

         1、在主界面上添加控件SplitContainer,将Dock属性设置为填充“Fill”,在左边一个pannel里面添加图层树TOCControl控件,

     

         2、在右边的pannel里面从工具箱里添加一个TabControl控件,将Dock属性设置为填充“Fill”;

      然后右键TabControl控件修改属性“Alignment”为“Bottom”,

      修改属性“Dock”为“Bottom”填充,使控件填充页面

      最后修改属性,进入TabPage集合编辑器页面,依次选择左侧的将tabPage1的Text修改为“地图模式”,tabPage2的Text修改为“制图模式”。然后确定。

     

        3、点击地图模式按钮,添加MapControl控件,设置Dock为“Fill”,修改属性“Name”为MapControlMain,然后再点击制图模式按钮,添加PageLayoutControl控件,设置Dock为Fill,设置Name为PageLayoutControl1

    二、图层树,地图和制图视图绑定

         1、界面设计好之后,首先在窗体初始化的时候进行地图初始化,为了图层树和地图进行关联,地图和制图数据同步,所以将mapControl的地图和PageLayoutControl的地图进行绑定,将PageLayoutControl与图层树进行绑定。

         

     1  /// <summary>
     2         /// 初始化
     3         /// </summary>
     4         private void Init()
     5         {
     6             //地图和制图绑定,图层树和制图绑定
     7             mapControlMain.FocusMap = pageLayoutControl1.FocusMap;
     8             tocControlMain.SetBuddyControl(pageLayoutControl1 as IPmdContents);
     9             pageLayoutControl1.DeActivate();
    10             mapControlMain.Activate();
    11         }

        2、地图模式和制图模式窗口切换

    右键TabControl控件属性,选择事件,找到SelectIndexChange事件,进行功能实现

     

     1         /// <summary>
     2         /// 地图和制图窗口切换
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
     7         {
     8             if (tabControl1.SelectedIndex == 0)//地图模式
     9             {
    10                 ActiveMapControl();
    11             }
    12             else if (tabControl1.SelectedIndex == 1)//制图模式
    13             {
    14                 ActivePagelayoutControl();
    15             }
    16         }
    17 
    18         /// <summary>
    19         /// 激活地图模式
    20         /// </summary>
    21         private void ActiveMapControl()
    22         {
    23             pageLayoutControl1.DeActivate();
    24             mapControlMain.Activate();
    25             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
    26         }
    27 
    28         /// <summary>
    29         /// 激活制图模式
    30         /// </summary>
    31         private void ActivePagelayoutControl()
    32         {
    33             mapControlMain.DeActivate();
    34             pageLayoutControl1.Activate();
    35             pageLayoutControl1.PartialRefresh(ViewDrawPhaseType.ViewAll);
    36         }

    示例代码路径:

    项目路径

    百度云盘地址下/PIE示例程序/11.图层树功能/ PIEDemo_SetBuddy

    数据路径

    百度云盘地址下/PIE示例数据/栅格数据/ World/World.tif

    视频路径

    百度云盘地址下/PIE视频教程/11.图层树功能/01.图层树伙伴控件.avi

    三、效果图如下图所示

     

  • 相关阅读:
    紧急情况下测试周期被压缩该如何测试?
    测试人员提高业务掌握度的方案
    Android客户端性能测试(一):使用APT测试Android应用性能
    转载:员工价值——如何体现自己价值,如何被自己的领导认可
    如何提高测试用例复用性和完善测试用例
    如何理解栈(栈的实现方式)
    Android 自动化测试—robotium(七) 使用Junit_report测试报告
    Android 自动化测试—robotium(八) 拖拽
    解决ADT升级报错
    敏捷测试的关键理念
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167013.html
Copyright © 2011-2022 走看看