b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mapxtreme pitney_mapxtreme_arcgis engine

电脑杂谈  发布时间:2017-01-22 06:01:35  来源:网络整理

arcgis engine_mapxtreme pitney_mapxtreme

前阵做一个项目过程中,需要结合MapInfo进行地方展示开发,积累一点点心得与大家共享

以下所有基于MapXtreme 6.6

MapInfo提供了足够强大的WinForm地图空间,可以很方便地在VS中拖拉摆放。

但如此强大的控件也带来了封闭性太强的问题。

现在我们都接触到了大量Web上的地图,比如Google Map,Live Map等,这些Web地图都具有非常高的交互能力,缩放由鼠标双击或鼠标中键滚动,或者使用缩放工具完成,但换到WinForm上,这些非常好的交互能力全都没有了,变成了一个个冰冷的控件(如下图),需要手动触发才能调用相应功能,这样的功能给用户多大的困扰啊!

需要改变一下了:

首先在需要使用MapControl的窗体构造一个MapControl对象,并声明如下事件:

缩放等级改变事件

1    /**//// <summary>
2    /// 缩放等级改变事件
3     /// </summary>
4    /// <remarks>在本地图的缩放等级发生变化后触发</remarks>
5    public event EventHandler ZoomLevelChanged;

这个事件的使用如下所示:

    /**//// <summary>
    /// 设置地图显示比例
    /// </summary>
    /// <remarks>窗体上所有缩放事件均进入该方法进行</remarks>
    /// <param name="ZoomLevel"></param>
    public void SetZoomLevel (int ZoomLevel)
    {
      _helper.Zoom ( ZoomLevel );
      _zoomLevel = _helper.ZoomLevel;
      if ( ZoomLevelChanged != null )
      {
        //触发事件
        ZoomLevelChanged ( this, new MapControlEventArg ( _zoomLevel ) );
      }
    }

声明ZoomLevelChanged事件时,为了省事,没有使用相应的委托来做,其实在EventArg处,我使用了一个继承自EventArg的类,并把当前缩放等级值传入其中。

arcgis engine_mapxtreme_mapxtreme pitney

准备工作完成了,那么现在是时候构造地图缩放工具了。

设计思路是这样的:

由于缩放地图具有一定的范围,那么我就把地图的缩放设置为8个等级,并对应MapInfo的缩放距离,该缩放方法使用一个外部类控制:

设置地图缩放等级

    /// <summary>
    /// 设置地图缩放层级
    /// </summary>
    /// <param name="map">地图实例引用</param>
    /// <param name="zoomLevel">缩放层级</param>
    private void SetZoomLevel ( Map map,int zoomLevel )
    {
      try
      {
        map.Zoom = ExchangeZoomLevel ( zoomLevel );
      }
      catch
      { }
    }


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-27980-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...