GMap.NET使用咨询:能否移除地图上的山峰名称、高度及标记
是否可以移除GMap地图上的山峰名称、对应高度数值以及相关标记?
可以实现,具体方案根据你的使用场景选择即可。
你当前使用的是捷克旅游地图提供器(CzechTuristMapProvider),这类面向徒步场景的地图源默认会在底图瓦片内置山峰名称、海拔数值、登山路径等专属标注,部分标注也有可能是你后续代码添加的自定义图层内容,对应解决方法如下:
方案1:清除自定义标记图层
如果标注是你自己代码中添加的Overlay图层内容,直接调用清除方法即可:
// 清除所有自定义覆盖图层 gmap.Overlays.Clear(); // 若要保留其他图层只删标记图层,可指定删除 // var markerOverlay = gmap.Overlays.FirstOrDefault(o => o.Id == "你的标记图层ID"); // if(markerOverlay != null) gmap.Overlays.Remove(markerOverlay);
方案2:替换无标注地图源(最简单推荐)
如果不需要捷克旅游地图的专属徒步内容,直接替换为普通地图源即可,默认不会内置山峰相关标注,修改初始化代码如下:
private void Form1_Load(object sender, EventArgs e) { // 示例替换为OpenStreetMap普通道路图,可按需换为谷歌、必应等其他通用地图源 gmap.MapProvider = GMap.NET.MapProviders.OpenStreetMapProvider.Instance; GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; // 可选关闭控件自带的默认标记 gmap.ShowCenter = false; }
方案3:自定义瓦片源(必须保留捷克旅游地图底图时用)
如果必须使用CzechTuristMapProvider的底图内容,可以自定义继承该提供器,修改瓦片请求的URL参数,请求无标注版本的瓦片,或者在本地对返回的瓦片做标注擦除处理(该方案需要对应瓦片源支持无标注版本的请求)。
标注效果示例:
内容的提问来源于stack exchange,提问作者NewHorse
相关产品推荐
相关产品推荐

