zoukankan      html  css  js  c++  java
  • 实现MapObject放大,缩小,平移,全图常用功能

    在axMap1的MouseDownEvent事件里加入下面代码

    代码
              MapObjects2.Rectangle rect;     //范围
                switch (axMap1.MousePointer)
                {
                    //放大
                    case MapObjects2.MousePointerConstants.moZoomIn:
                        {                        
                            rect 
    = axMap1.TrackRectangle(); //得到鼠标拖动范围
                            
    if (rect == null || rect.Width < 0.00005 || rect.Height < 0.00005)  //如果选择区域很小,可以认为是 单击、点选
                            {
                                rect 
    = axMap1.Extent;
                                rect.ScaleRectangle(
    0.5);   //设置放大比例
                            }
                            axMap1.Extent 
    = rect;
                            
    break;
                        }

                    
    //缩小 
                    case MapObjects2.MousePointerConstants.moZoomOut:
                        {
                            MapObjects2.Rectangle Tempr;
                            Tempr 
    = axMap1.Extent;
                            rect 
    = axMap1.TrackRectangle();
                            
    double NewSR;
                            
    if (rect == null || rect.Width < 0.00005 || rect.Height < 0.00005)
                            {
                                
    if (axMap1.Extent.Width / rect.Width > axMap1.Extent.Height / rect.Height)
                                {
                                    NewSR 
    = axMap1.Extent.Height / rect.Height;
                                }
                                
    else
                                {
                                    NewSR 
    = axMap1.Extent.Width / rect.Width;
                                }
                                Tempr.ScaleRectangle(NewSR);
                            }
                            
    else
                            {
                                Tempr.ScaleRectangle(
    2.0);   //设置缩小比率
                            }
                            axMap1.Extent 
    = Tempr;
                            
    break;
                        }
                    
    //漫游 
                    case MapObjects2.MousePointerConstants.moPan:
                        {
                            axMap1.Pan();
                            
    break;
                        }
               .
               .
               .

    这里要设置下鼠标的状态,比如在放大按钮的单击事件下加入:

    axMap1.MousePointer = MapObjects2.MousePointerConstants.moZoomIn;   //放大,改变鼠标状态

    全图:

    axMap1.Extent = axMap1.FullExtent;

  • 相关阅读:
    C# 遍历TreeView所有节点
    Oracle创建删除用户、角色、表空间、导入导出、...命令总结
    order by,group by和having的使用
    C/C++ 数据结构与算法笔记
    使用PS随意更换相片底色
    微软SQL Server2012增加对Hadoop的支持
    MOSS2010事件接收器开发以及自定义错误提示页
    将 SharePoint 开发与其他形式的开发进行比较
    ItemAdding事件接收器中无法取到【创建者】的字段的值
    ItemAdding实现数据验证中文字段,properties.AfterProperties值为null的问题
  • 原文地址:https://www.cnblogs.com/tqlin/p/1675584.html
Copyright © 2011-2022 走看看