GMap.NET使用过程的一些笔记

本文记录了GMap.NET的使用心得,包括下载安装、在WindowsForms项目中的集成、地图控件属性介绍,以及如何添加标记、多边形和路线。通过实例展示了GMap.NET在ADS-B接收机可视化项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GMap.NET使用过程的一些笔记


前言

GMap.NET是强大、免费和跨平台的开源.NET控件,而写这篇博客是因为最近有个ADS-B接收机可视化的项目需要使用地图作为可视化,并且选择了GMap.NET作为开发的基础,在网上查找资料较少,所以就在这里分享一下项目过程中使用GMap.NET的一些经验,也希望能够给使用GMap.NET的开发者提供一些参考,当然我也不是理解的很透彻,所以可能有些地方还是欠缺,也希望谅解。


一、下载安装GMap.NET

首先是在greatmaps网站下载源代码(网站的右上角download archive),源文件大概400M,我下载时挺快的,源代码可以做部分的更改编译后生成自己功能的DLL文件,而实际上我们使用到的基本上是三个文件:

  1. GMap.NET.Core.dll(在目录\greatmaps\sourceCode\greatmaps\GMap.NET.Core\bin\Debug)
  2. GMap.NET.WindowsForms.dll(在目录\greatmaps\sourceCode\greatmaps\GMap.NET.WindowsForms\bin\Debug)
  3. 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工具添加到我们的项目中(我在界面右上角加了个地图选择器):
Visual Studio 界面

2.GMap.NET控件的自定义代码

这是GMap.NET的其中一些属性:

  1. CanDragMap –如果设置为true,则用户可以使用鼠标右键拖动(平移)地图。您可能需要将此设置保持为true。
  2. EmptyTileColor –这是GMap用来绘制无法从地图提供程序获取任何数据的图块的颜色。当您以很高的缩放级别显示地图时,可能会发生这种情况,具体取决于提供者。
  3. MarkersEnabled –如果设置为true,则GMap将显示您定义的所有标记。最好暂时将其设置为true,否则您可能会想知道标记的位置)。这同样适用于PolygonsEnabled和RoutesEnabled。
  4. Zoom,MinZoom和MaxZoom – Google Maps的缩放级别介于0(缩放到全局级别)到18(缩放到街道级别)之间。缩放是当前的缩放级别(5代表国家/地区级别),如果希望用户能够完全放大和缩小,则应分别将MinZoom和MaxZoom设置为0和18。使用鼠标滚轮进行缩放。
  5. 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 = 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值