前阵做一个项目过程中,需要结合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 ) );
}
}
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!