文档详情

维地图之GmapNet使用心得.doc

发布:2017-03-29约1.55万字共19页下载文档
文本预览下载声明
1--------地图开发控件(GMap.NET)使用心得 我们先看看GMap.NET的定义: GMap.NET是一个强大、免费、跨平台、开源的.NET控件,它在Windows Forms 和WPF环境中能够通过Google, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac等实现寻找路径、地理编码以及地图展示功能,并支持缓存和运行在Mobile环境中。 GMap.NET是一个开源的GEO地图定位和跟踪程序。就像谷歌地图、雅虎地图一样,可以自动计算两地的距离,定位经纬度,与Google地图不同的是,该项目是建立在C#语言WinForm基础上的。可以对地图放大缩小,进行城市标记等。 GMap.NET的项目地址是/?,我们可以下载相关的例子和源码进行学习和研究。我在Google上搜过相关的项目,好像介绍的文章不多,不过不影响这个控件的强大和易用。我们先看看它的界面截图: GMap.NET号称是可以支持很多种地图来源的,不过我试了一下,好像有部分是有些问题,最好的效果是GoogleMapChina,如上图所示。 ?我用GoogleMapChina可以放大到很详细的街道图,做了一个地址查询的例子,如下所示: ? 控件可以绘出两地的行车线路或者步行线路等,而且能够算出两地的距离,不过对于地理编码的解析好像不是很准确,也获取不到公交线路等信息,不过应付一般的应用,应该是蛮不错的了。 这个控件默认使用了右键按住作为拖动,和GoogleMap用鼠标左键作为拖动有点不太一样(不过可以通过this.gMapControl1.DragButton = MouseButtons.Left;来实现左键拖动),两者皆能够支持滚轮放大缩小的操作。 控件还支持经纬度的精确定位,绘制图标(支持绿色、红色的图标、十字符号等标记),支持中心点移动?,导出地图图片等功能。 由于地图控件支持路线的绘制,所以应该支持一般的GIS应用中的轨迹回放功能的。 由于地图控件支持鼠标位置和经纬度坐标的转换功能,因此,可以随意获取到相关的经纬度信息。 这个Winform的地图控件,虽然对比Web的GoogleMap来说,很多功能还不具备,但是较普通的MapX和MapXtreme或者ArcGis等传统的GIS来说,不用付太多的费用(甚至不用付费用),就可以使用上精细的地图,不得不说是一个好消息 2-------心得二 在上篇《Winform下的地图开发控件(GMap.NET)使用心得》中简单介绍了GMap.NET的控件基本情况,本篇开始介绍一下相关的代码操作。 其实目前GMap.NET提供的功能还不是很多,因此其演示的例子基本上都涉及到了,我在此基础上做了一些改进和运用,总结下功能代码吧。 首先使用控件前,需要初始化一些变量和事件, 初始化代码如下所示: 代码 ????????private?void?InitMapControl() ????????{ // gmap.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance; ????????????this.gMapControl1.Manager.Mode?=?AccessMode.ServerAndCache; ????????????this.gMapControl1.MapType?=?MapType.GoogleMapChina; ????????????this.gMapControl1.MaxZoom?=?18; ????????????this.gMapControl1.MinZoom?=?8; ????????????this.gMapControl1.Zoom?=?13; ??????????this.gMapControl1.MouseMove?+=?new?MouseEventHandler(gMapControl1_MouseMove); ????????????this.gMapControl1.DoubleClick?+=?new?EventHandler(gMapControl1_DoubleClick); ??????????this.gMapControl1.MouseDown?+=?new?MouseEventHandler(this.MainMap_MouseDown); ????????????this.gMapControl1.MouseUp?+=?new?MouseEventHandler(this.MainMap_MouseUp); ????????????this.gMapControl1.OnCurrentPositionChanged?+=
显示全部
相似文档