You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForm中GMap.NET无法显示多标记问题求助

在GMap.NET中显示多个标记的解决方案

我来帮你搞定GMap.NET显示多个标记的问题!从你给出的代码来看,button1_Click已经把地图定位和基础配置做好了,接下来只需要完善button2_Click的逻辑,利用GMap.NET的GMapOverlay容器来管理多个标记就行,具体步骤如下:

步骤1:声明全局的标记容器

首先在你的窗体类里声明一个全局的GMapOverlay对象,这样可以保证多次点击按钮也不会丢失之前的标记,代码如下:

// 在窗体类的顶部声明全局变量
private GMapOverlay markersOverlay;

步骤2:初始化标记容器(可放在button1_Click或窗体构造函数)

在button1_Click里添加初始化overlay的代码,把这个容器挂载到地图上:

private void button1_Click(object sender, EventArgs e) 
{ 
    gmap.DragButton = MouseButtons.Left; 
    gmap.MapProvider = GMapProviders.GoogleMap; 
    gmap.Position = new PointLatLng(25.037531, 121.5639969); 
    gmap.MinZoom = 5; 
    gmap.MaxZoom = 100; 
    gmap.ShowCenter = false; 
    gmap.Zoom = 15; 

    // 初始化标记容器并添加到地图
    markersOverlay = new GMapOverlay("markers");
    gmap.Overlays.Add(markersOverlay);
}

步骤3:实现button2_Click添加多个标记

现在就可以在button2_Click里创建多个标记,把它们添加到刚才的overlay中,地图会自动显示这些标记:

private void button2_Click(object sender, EventArgs e) 
{ 
    // 清空之前的标记(可选,如果你不想重复添加的话)
    markersOverlay.Markers.Clear();

    // 创建第一个标记:比如定位到台北101附近
    GMapMarker marker1 = new GMapMarkerGoogleRed(new PointLatLng(25.0339639, 121.5644722));
    // 可以给标记添加提示文本
    marker1.ToolTipText = "台北101";
    markersOverlay.Markers.Add(marker1);

    // 创建第二个标记:比如另一个位置
    GMapMarker marker2 = new GMapMarkerGoogleBlue(new PointLatLng(25.0406, 121.5572));
    marker2.ToolTipText = "另一个地点";
    markersOverlay.Markers.Add(marker2);

    // 如果你需要更多标记,继续重复上面的逻辑即可
    // GMapMarker marker3 = ...
    // markersOverlay.Markers.Add(marker3);

    // 刷新地图(可选,有些情况需要手动触发刷新)
    gmap.Refresh();
}

关键说明

  • GMapOverlay是GMap.NET用来管理图层的核心类,一个overlay可以包含多个标记、线条、多边形等元素,把它添加到地图的Overlays集合里就能显示了。
  • 标记的样式可以选择内置的(比如GMapMarkerGoogleRed、GMapMarkerGoogleBlue),也可以自定义图片标记,只需要继承GMapMarker类实现即可。
  • 如果需要动态更新标记,直接操作markersOverlay.Markers集合就行,添加或移除后地图会自动更新(如果没更新就手动调用gmap.Refresh())。

内容的提问来源于stack exchange,提问作者user3264606

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:43:46