• 一起学习ArcEngine(4)平移


    地图平移,可以说是最重要的功能之一,许多地图的默认工具就是平移。AE实现平移,比较简单,代码如下

       1:    /// <summary>
       2:      ///  地图漫游工具
       3:      /// </summary>
       4:      public class Pan : GISTools.Base.ToolBase
       5:      {
       6:         
       7:          private bool m_PanOperation;
       8:   
       9:          public Pan()
      10:              : base("Pan")
      11:          { }
      12:   
      13:          public Pan(AxMapControl mapCtl) 
      14:              : base(mapCtl, "Pan") 
      15:          {
      16:              if (m_cursor == null) m_cursor = getCursor(esriSystemMouseCursor.esriSystemMouseCursorPan);
      17:          }
      18:   
      19:          public Pan(AxPageLayoutControl plCtl)
      20:              : base(plCtl, "Pan")
      21:          {
      22:              if (m_cursor == null) m_cursor = getCursor(esriSystemMouseCursor.esriSystemMouseCursorPan);
      23:          }
      24:   
      25:          public override void OnMouseDown(int Button, int Shift, int X, int Y)
      26:          {
      27:              if (Button != 1) return;
      28:             IPoint point =m_pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
      29:             m_pActiveView.ScreenDisplay.PanStart(point);
      30:              m_PanOperation = true;
      31:          }
      32:   
      33:          public override void OnMouseMove(int Button, int Shift, int X, int Y)
      34:          {
      35:              if (Button != 1) return;
      36:   
      37:              if (!m_PanOperation) return;
      38:   
      39:              IPoint point = m_pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
      40:              m_pActiveView.ScreenDisplay.PanMoveTo(point);
      41:          }
      42:   
      43:          public override void OnMouseUp(int Button, int Shift, int X, int Y)
      44:          {
      45:              if (Button != 1) return;
      46:   
      47:              if (!m_PanOperation) return;
      48:   
      49:              IEnvelope extent = m_pActiveView.ScreenDisplay.PanStop();
      50:   
      51:              if (extent != null)
      52:              {
      53:                  m_pActiveView.ScreenDisplay.DisplayTransformation.VisibleBounds = extent;
      54:                  m_pActiveView.ScreenDisplay.Invalidate(null, true, (short)esriScreenCache.esriAllScreenCaches);
      55:              }
      56:              m_PanOperation = false;
      57:          }
      58:      }
  • 相关阅读:
    django学习-33.【一对多】表关系对应的完整业务操作
    django学习-32.发送满足【邮件正文值为一个html页面+有多个附件】的单个邮件
    django学习-31.发送满足【邮件正文值为一个html页面】的单个邮件
    东芝TC10 512G使用半年后掉速严重
    添加Linux服务(Debian 8+,Systemd)
    C# LinkedList
    在VS2019里面 C# 和SqlSerer的勾兑
    Jquery垂直下拉二级菜单
    (二十六)运输层--TCP的拥塞控制的一般原理
    (二十五)运输层--TCP的流量控制
  • 原文地址:https://www.cnblogs.com/liuyh208/p/1562823.html
Copyright © 2020-2023  润新知