/***************************************************************************** * 文件: /Feature/MapNavigation.cs * * 创建日期: 2009-9-23 10:49 * * 作者: xelam * * 作用:漫游地图功能,自制ToolBar *****************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.Controls; using CZWIMS.Feature.Exception; namespace CZWIMS.Feature.MapNavigation { class MapNavigation { /// <summary> /// 地图 缩小功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int zoomOut(AxMapControl mapC) { try { createTool(mapC, new ControlsMapZoomOutToolClass()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// 地图 放大功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int zoomIn(AxMapControl mapC) { try { createTool(mapC, new ControlsMapZoomInToolClass()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// 地图 全屏功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int fullExtent(AxMapControl mapC) { try { createCommond(mapC, new ControlsMapFullExtentCommandClass()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// 地图 平移功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int PanMap(AxMapControl mapC) { try { createTool(mapC, new ControlsMapPanTool()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// 地图 上一视图 功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int toLastExtentForward(AxMapControl mapC) { try { createCommond(mapC, new ControlsMapZoomToLastExtentForwardCommandClass()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// 地图 下一视图 功能 /// </summary> /// <param name="mapC"></param> /// <returns></returns> public static int toLastExtentBack(AxMapControl mapC) { try { createCommond(mapC, new ControlsMapZoomToLastExtentBackCommandClass()); return 1; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); return 0; } } /// <summary> /// AO工具应用Itool /// </summary> /// <param name="mapC"></param> /// <param name="ic"></param> private static void createTool(AxMapControl mapC,ICommand ic){ try { ic.OnCreate(mapC.Object); mapC.CurrentTool = ic as ITool; } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); throw new MissingMemberException(); } } /// <summary> /// AO工具应用ICommond /// </summary> /// <param name="mapC"></param> /// <param name="ic"></param> private static void createCommond(AxMapControl mapC, ICommand ic) { try { ic.OnCreate(mapC.Object); ic.OnClick(); } catch (System.Exception ex) { ShowExceptionDialog.show(ex.ToString()); throw new MissingMemberException(); } } } }