您的位置:首页 > 其它

使用ArcGIS Engine提供的命令和工具(ICommond,ITool)实现MapView操作

2009-10-29 10:07 543 查看
/*****************************************************************************
* 文件:       /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();
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  工具 class
相关文章推荐