在MapXTreme2004中创建自定义工具- -

前段时间,在使用MapXtreme 2004开发Web程序的时候,需要自己定义一个测量面积的工具。为此,查了一些资料,走了不少弯路,总算做成了,现在总结一下,和大家分享。
一、一般实现
一般来说,要自定义工具,只需要从MapInfo.Web.UI.WebControls.MapTool继承,创建一个子类即可,里面关键要指定:ClientCodeSource、ClientStartMethod、ClientStopMethod、CursorUrl属性,并重载Execute方法,自定制工具的逻辑就在该方法内实现。
这样,通过指定:MapControl.MapTools.CurrentTool 就可以实现了。
但是,这样的实现,功能单一,而且也将功能写死了,下面介绍一种功能稍微完整但有些复杂的方法。
二、复杂实现
实现思路如下:
1、 集成EventArgs类,创建自定义工具的事件参数,如:customAreaToolEnventArgs。
2、 继承MapInfo.Web.UI.WebControls.MapTool类,创建自己的子类。
+在该类中指定ClientCodeSource、ClientStartMethod、ClientStopMethod、CursorUrl等属性,
+在该类中加入时间和事件处理器;如:
      public delegate void customAreaToolEventHander( Object sender, customAreaToolEnventArgs e );
      public event customAreaToolEventHander CalculateFinished;
  +并重载Execute方法,并在该方法中触发事件。
3、将自定义的工具创建成控件。
4、在Html文件中使用TagPrefix注册该控件。如:
6、加入事件处理函数。
在VS2003.NET开发环境中,通过该控件的事件属性,可以很容易的加入该事件。如:
private void myareatoolcontrol_CalculateFinished(object sender, WebGIS.customAreaToolEnventArgs e)
{
this.TextBox1.Text = string.Format("测量面积:\n{0}\n平方公里", e.Area );
}

转载于:https://www.cnblogs.com/googlegis/archive/2009/12/14/2978976.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值