实现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;

 

 

转载于:https://www.cnblogs.com/tqlin/archive/2010/03/01/1675584.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值