通过ICommand和ITool操作地图

  • 参考文章

            https://www.cnblogs.com/LoveLyre/archive/2011/08/31/2160640.html

            http://blog.csdn.net/huluanchushou/article/details/53524880?locationNum=3&fps=1

            http://edndoc.esri.com/arcobjects/9.2/net/b9a335a2-f653-44a1-8961-89051f2e958f.htm

  • 添加axToolbarControl1设置为不可见

        漫游:    

            ICommandPool pool = this.axToolbarControl1.CommandPool;
            for (int i = 0; i < pool.Count; i++)
            {
                if (pool.get_Command(i).Name == "ControlToolsMapNavigation_Pan")
                //"ControlToolsMapNavigation_ZoomOut"  "ControlToolsMapNavigation_ZoomIn"
                {
                    this.axMapControl1.CurrentTool = pool.get_Command(i) as ITool;
                    break;
                }
            }

        选择要素工具

            ICommandPool pool = this.axToolbarControl1.CommandPool;
            for (int i = 0; i < pool.Count; i++)
            {
                if (pool.get_Command(i).Name == "ControlToolsFeatureSelection_SelectFeatures")
                {
                    this.axMapControl1.CurrentTool = pool.get_Command(i) as ITool;
                    break;
                }
            }

        布局视图(缩放至整个视图)

            ICommandPool pool = this.axToolbarControl1.CommandPool;
            for (int i = 0; i < pool.Count; i++)
            {
                if (pool.get_Command(i).Name == "ControlToolsPageLayout_PageZoomOut")
                {
                    this.axPageLayoutControl1.CurrentTool = pool.get_Command(i) as ITool;
                    break;
                }
            }
  • CommandClass结尾的一般是实现了ICommand接口
              //ESRI.ArcGIS.SystemUI.ICommand command = ESRI.ArcGIS.Controls.ControlsPageZoomWholePageCommandClass;
                ESRI.ArcGIS.SystemUI.ICommand command = new ControlsPageZoomWholePageCommandClass();
                command.OnCreate(axPageLayoutControl1.Object);
                command.OnClick();
                ICommand command = new ControlsOpenDocCommandClass();
                command.OnCreate(m_mapControl.Object);
                command.OnClick();
  • ToolClass结尾的都是实现了ITool的类
                ICommand pCommand = new ESRI.ArcGIS.Controls.ControlsMapZoomInToolClass();
                pCommand.OnCreate(axMapControl1.Object);
                axMapControl1.CurrentTool = pCommand as ITool;

     

猜你喜欢

转载自blog.csdn.net/fangyu723/article/details/79443675