zoukankan      html  css  js  c++  java
  • 一起学习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:      }
  • 相关阅读:
    js03 案例驱动表单的验证
    js02 案例驱动1 定时弹出广告 Brower对象
    js基础01
    ScalarHandler对象获取 数据库中的数据是注意转换
    java中写模糊查询2
    mvc与三层结构终极区别
    JSP和El表达式和JSTL标签库使用
    SQL注入学习笔记——盲注
    SQL注入学习笔记——联合语句查询
    Linux PHP版本7下布置sqli-labs
  • 原文地址:https://www.cnblogs.com/liuyh208/p/1562823.html
Copyright © 2011-2022 走看看