GMap.NET使用过程的一些笔记
前言
GMap.NET是强大、免费和跨平台的开源.NET控件,而写这篇博客是因为最近有个ADS-B接收机可视化的项目需要使用地图作为可视化,并且选择了GMap.NET作为开发的基础,在网上查找资料较少,所以就在这里分享一下项目过程中使用GMap.NET的一些经验,也希望能够给使用GMap.NET的开发者提供一些参考,当然我也不是理解的很透彻,所以可能有些地方还是欠缺,也希望谅解。
一、下载安装GMap.NET
首先是在greatmaps网站下载源代码(网站的右上角download archive),源文件大概400M,我下载时挺快的,源代码可以做部分的更改编译后生成自己功能的DLL文件,而实际上我们使用到的基本上是三个文件:
- GMap.NET.Core.dll(在目录\greatmaps\sourceCode\greatmaps\GMap.NET.Core\bin\Debug)
- GMap.NET.WindowsForms.dll(在目录\greatmaps\sourceCode\greatmaps\GMap.NET.WindowsForms\bin\Debug)
- GMap.NET.WindowsPresentation.dll(在目录\greatmaps\sourceCode\greatmaps\GMap.NET.WindowsPresentation\bin\Debug)
我在这里提供这三个的单独下载文件在云盘(提取码nstd)。
如果是自己修改相关参数的,可以在\greatmaps\sourceCode\greatmaps\目录的对应子目录中打开Project文件重新编译(例如我提供的DLL就去除了地图中心红色+的标志)。
二、在项目中使用GMap.NET
1.新建C#的WindowsFormsApplication
我们在Visual Studio(我使用的是2012版本,其它版本可能会稍有差别)新建一个应用,在“工具箱”右键选择菜单“选择项”,然后在.NET Framework组件的浏览按钮中选择我们下载的GMap.NET.WindowsForms.dll,这样在我们的工具箱中就会有GMapControl工具。
接下来就是把GMapControl工具添加到我们的项目中(我在界面右上角加了个地图选择器):
2.GMap.NET控件的自定义代码
这是GMap.NET的其中一些属性:
- CanDragMap –如果设置为true,则用户可以使用鼠标右键拖动(平移)地图。您可能需要将此设置保持为true。
- EmptyTileColor –这是GMap用来绘制无法从地图提供程序获取任何数据的图块的颜色。当您以很高的缩放级别显示地图时,可能会发生这种情况,具体取决于提供者。
- MarkersEnabled –如果设置为true,则GMap将显示您定义的所有标记。最好暂时将其设置为true,否则您可能会想知道标记的位置)。这同样适用于PolygonsEnabled和RoutesEnabled。
- Zoom,MinZoom和MaxZoom – Google Maps的缩放级别介于0(缩放到全局级别)到18(缩放到街道级别)之间。缩放是当前的缩放级别(5代表国家/地区级别),如果希望用户能够完全放大和缩小,则应分别将MinZoom和MaxZoom设置为0和18。使用鼠标滚轮进行缩放。
- Bearing –此属性会将地图向左旋转指定的度数。
进入GMap.NET的初始化函数gMapControl1_Load()(单击控件进入代码编写),写代码之前记得要在前面添加引用:
using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
using GMap.NET.MapProviders;
//地图选择,可以通过GMapProviders.根据提示选择代码,而不必记住有什么地图名称
this.Main_gMap.MapProvider = GMapProviders.BingHybridMap;
//设置地图缓存模式
GMaps.Instance.Mode = AccessMode.ServerAndCache;
//设置地图的中心点纬度和经度
this.Main_gMap.Position = new GMap.NET.PointLatLng(23.0,113.0);
//地图最小的缩放级别
this.Main_gMap.MinZoom = 2;
//地图最大的缩放级别
this.Main_gMap.MaxZoom = 20;
//初始化时地图的缩放级别
this.Main_gMap.Zoom =