zoukankan      html  css  js  c++  java
  • ArcGIS Engine开发之TocControl

    TocControl控件简介

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

    一、TOCControl与数据视图的关联

    关联的方式有两种,一种是代码的绑定,第二种是TOCControl控件的属性表中设置。

    属性设置:在General选项卡中选择Buddy中进行关联。

    代码绑定:axTOCControl.SetBuddyControl(mainMapControl);

    二、图层显示顺序的调整

    在应用中,有时需要对图层进行顺序调整,以免放生盖压导致部分图层不能显示,图层顺序的调整也有两种方法:

    属性设置:通过属性选项卡General下的复选框Enable Layer Drag and Drop,即可实现图层的拖拽功能。

    代码实现:分别在TOCControl控件的OnMouseDown和OnMouseUp两个事件设置,及HitTest()方法;

    HitTest()方法的参数如下:

    1 Public void HitTest(
    3    int X,//当鼠标在TOCControl中按下时,参照TOCControl左上角为原点,以像素为单位,
    4    int Y, //同上,返回鼠标的y坐标
    5    ref esriTOCControlItem ItemType,//枚举常量
    6    ref IBasicMap BasicMap,//绑定MapControl中的IBasicMap对象
    7    ref ILayer Layer,//被点击的图层对象
    8    ref object Unk,//图例组对象
    9    ref object Data);//图例组中图例类的索引,根据索引和图例组可获得特定的图例类

    ITOCControl接口的HitTest()方法可以返回TOCControl中点击坐标点处的对象类型ItemType。esriTOCControlItem类型对应的关系如下表:

    对象 说明
    esriTOCControlItemNone 0 没有对象
    esriTOCControlItemMap 1 Map对象
    esriTOCControlItemLayer 2 Layer对象
    esriTOCControlItemHeading 3 对象的标题
    esriTOCControlItemLegendClass 4 LegendClass

    三、实现思路

    1)在TOCControl中,当鼠标点击时即在OnMouseDown事件中,拾取需要调整的图层,当鼠标弹起时即OnMouseUp事件中,获得图层移到位置的图层索引号。

    2)使用IMap接口提供MoveLayer方法,将需要调整显示顺序的图层移动目标位置。

    3)使用TOCControl的Update()方法,更新TOCControl控件中的图层顺序。


  • 相关阅读:
    ubuntu中安装monodevelop
    谈谈asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用
    asp.net中的App_GlobalResources和App_LocalResources使用
    cisco通过控制口或者通过远程配置交换机
    匿名函数
    迭代器生成器
    闭包函数,装饰器
    函数之对象和名称空间与作用域
    函数
    文件操作
  • 原文地址:https://www.cnblogs.com/dongteng/p/5914763.html
Copyright © 2011-2022 走看看