如何在 GMap.net 中将地图提供商设置为 OpenStreetMap

how to set map provider to OpenStreetMap in GMap.net

我有这个代码:

InitializeComponent();
mainMap.ShowCenter = false;
mainMap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
//mainMap.MapProvider = GMap.NET.MapProviders.OpenStreetMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
mainMap.DragButton = MouseButtons.Left;
mainMap.Zoom = 5; 

这是有效的,我可以在我的 window 上看到一张地图:

现在我想使用 OpenStreetMap 作为我的地图供应商。所以我把它改成了这个:

InitializeComponent();
mainMap.ShowCenter = false;
//mainMap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
mainMap.MapProvider = GMap.NET.MapProviders.OpenStreetMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;
mainMap.DragButton = MouseButtons.Left;
mainMap.Zoom = 5; 

但是我可以得到一张地图:

如果我将地图提供者更改为 OpenStreet4UMapProvider,我将得到:

那么我应该使用哪个提供商来使用 GMap.Net

显示来自 OpenStreetMap 数据库的街道级数据

我找到了这个问题的原因:

我用的是这个控件的1.7版。升级到v后2.x(如果使用Nuget,需要卸载GMap包,搜索新版本安装新版本)

升级后,我可以毫无问题地使用 OpenStreetMap。