zoukankan      html  css  js  c++  java
  • 在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 );
    }

  • 相关阅读:
    最短路+线段交 POJ 1556 好题
    判断线段和直线相交 POJ 3304
    nginx配置pathinfo模式,解决访问404
    使用ORM关联关系,如何自己关联自己
    PHPCMS
    linux安装redis服务,配置PHP扩展
    后台银行卡算法
    静态类和非静态类
    PHP的闭包和匿名函数
    php获取前一天时间段,每个月的第一天到最后一天
  • 原文地址:https://www.cnblogs.com/googlegis/p/2978976.html
Copyright © 2011-2022 走看看