zoukankan      html  css  js  c++  java
  • ArcEngine中使用上下左右键移动地图

    转自愿文ArcEngine中使用上下左右键移动地图

    因项目需要,需对mapcontrol控件响应上下左右键,从网上找的方法都一样,都值提到了需要设置axMapControl1的KeyIntercept属性为1,但这样做的结果是,除了自己在onkeydown中设置的平移1/10个屏幕大小外,系统还会有一个默认的平移操作。经研究发现,设置axMapControl1的autokeyboardscrolling属性为false即可屏蔽系统默认的对上下左右键的相应方法。

    axMapControl1.AutoKeyBoardScrolling=false;  
    axMapControl1.KeyIntercept = 1;  
    private void axMapControl1_OnKeyDown(object sender, ESRI.ArcGIS.MapControl.IMapControlEvents2_OnKeyDownEvent e)  
    {  
        switch (e.keyCode)  
        {  
            case (int)System.Windows.Forms.Keys.Up:  
                PanMap(0d, 0.5d);  
                break;  
            case (int)System.Windows.Forms.Keys.Down:  
                PanMap(0d, -0.5d);  
                break;  
            case (int)System.Windows.Forms.Keys.Left:  
                PanMap(-0.5d, 0d);  
                break;  
            case (int)System.Windows.Forms.Keys.Right:  
                PanMap(0.5d, 0d);  
                break;  
        }  
    }  
      
    private void PanMap(double ratioX, double ratioY)  
    {  
        //Pans map by amount specified given in a fraction of the extent e.g. rationX=0.5, pan right by half a screen   
        IEnvelope envelope = axMapControl1.Extent;  
        double h = envelope.Width;  
        double w = envelope.Height;  
        envelope.Offset(h * ratioX, w * ratioY);  
        axMapControl1.Extent = envelope;  
    }   
  • 相关阅读:
    SpringBoot-redis-session
    设计模式总结
    linux 查看磁盘信息
    MAC配置JAVA环境变量
    mysql设计规范二
    mysql设计规范一
    Alibaba 镜像
    ELK之Logstash配置文件详解
    Docker 搭建 ELK 读取微服务项目的日志文件
    SpringBoot 读取配置文件的值 赋给静态变量
  • 原文地址:https://www.cnblogs.com/arxive/p/6262706.html
Copyright © 2011-2022 走看看