ArcgisEngine实现地图浏览


全图

    private void FullExtentTSButton_Click(object sender, EventArgs e)
        {
            mainMapControl.Extent = mainMapControl.FullExtent;

        }

等比例放大

        private void btnZoomInStep_Click(object sender, EventArgs e)
        {
            IEnvelope pEnvelope;
            pEnvelope = mainMapControl.Extent;
            pEnvelope.Expand(0.5, 0.5, true);   //放大2倍
            mainMapControl.Extent = pEnvelope;
            mainMapControl.ActiveView.Refresh();

        }

等比例缩小

        private void btnZoomIOutStep_Click(object sender, EventArgs e)
        {
            IActiveView pActiveView = mainMapControl.ActiveView;
            IPoint centerPoint = new PointClass();
            centerPoint.PutCoords((pActiveView.Extent.XMin + pActiveView.Extent.XMax) / 2, (pActiveView.Extent.YMax + pActiveView.Extent.YMin) / 2);
            IEnvelope envlop = pActiveView.Extent;
            envlop.Expand(1.5, 1.5, true);    //与放大的区别在于Expand的参数不同
            pActiveView.Extent.CenterAt(centerPoint);
            pActiveView.Extent = envlop;
            pActiveView.Refresh();

            //如果觉得乱的话,直接修改放大的参数也将就可以 非万不得已不用
            //IEnvelope pEnvelope;
            //pEnvelope = mainMapControl.Extent;
            //pEnvelope.Expand(1.5, 1.5, true);   //放大2倍
            //mainMapControl.Extent = pEnvelope;
            //mainMapControl.ActiveView.Refresh();


        }

上一视图

        // 定义全局变量
        IExtentStack pExtentStack;
        private void PreViewTSButton_Click(object sender, EventArgs e)
        {
            pExtentStack = mainMapControl.ActiveView.ExtentStack;
            //判断是否可以回到前一视图,第一个视图没有前视图
            if (pExtentStack.CanUndo())
            {
                pExtentStack.Undo();      //撤销到上一视图范围
                NextViewTSButton.Enabled = true;   //后一视图可以使用
                if (!pExtentStack.CanUndo())
                {
                    PreViewTSButton.Enabled = false;  //前一视图不能使用
                }
            }
            mainMapControl.ActiveView.Refresh();

        }

下一视图

        private void NextViewTSButton_Click(object sender, EventArgs e)
        {
            pExtentStack = mainMapControl.ActiveView.ExtentStack;
            //判断是否可以回到后一视图,最后一个视图没有后一视图
            if (pExtentStack.CanRedo())  //如果可以重做下一视图
            {
                pExtentStack.Redo();   //重做到下一视图
                PreViewTSButton.Enabled = true;   //上一视图按钮可以使用

                if (!pExtentStack.CanRedo())  //如果不可以重做下一视图
                {
                    NextViewTSButton.Enabled = false;   //下一视图不能用
                }
            }
            mainMapControl.ActiveView.Refresh();
        }

文章作者: 剑胆琴心
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 剑胆琴心 !
评论
 上一篇
ArcgisEngine鹰眼功能 ArcgisEngine鹰眼功能
// 鹰眼视图功能 ... // OnMapReplaced当mapcontrol1中的地图被替换时,该方法自动加载主空间中所有的图层对象到鹰眼 private void mainMapCo
2018-11-02
下一篇 
ArcEngine初识 -- 打开地图 ArcEngine初识 -- 打开地图
一句代码 创建winform程序 必须要添加LicenseControl控件 TOCControl视图控件 => 属性,设置关联属性绑定(Buddy)到地图控件上 ToolbalControl工具条控件 伙伴控价 =>
2018-11-01
  目录