Gmap.Net 标记在不正确的位置,但当地图缩放时,标记会转到正确的位置

Gmap.Net Marker at incorrect position but when the map is zoomed the marker goes to right place

我有一个带有 Gmap.Net 控制器的 Windows 表单应用程序,我想做什么是根据提供位置的外部来源添加标记。问题是,当我添加标记时,最初绘制在错误的位置,但在我缩小后它会转到正确的位置。这就是我到目前为止所得到的:

我的地图控制器声明位于巴拿马巴拿马。

private void button2_Click(object sender, EventArgs e)
{    
    //Layer count is just a variable to add new OverLays with different names
    var markersOverlay = new GMapOverlay("markers" + layerCount);

    //Marker far away in Quebec, Canada just to check my point in discussion        
    var marker = new GMarkerGoogle(new PointLatLng(58.0032, -79.4957), GMarkerGoogleType.red_small);

    markersOverlay.Markers.Add(marker);
    gmap.Overlays.Add(markersOverlay);
    layerCount++;
}

所以当我按下按钮时,我得到的是这个(请记住,地图位置设置在巴拿马,而标记在加拿大):

当我缩小时,标记会转到加拿大的正确位置。

为什么我的标记最初是在巴拿马绘制的?

P.D:我已经检查过这个 question 但它没有解决我的问题,因为我需要添加超过 1 个标记和 myMap.UpdateMarkerLocalPosition(marker) 对我来说不是解决方案。

这是因为您要将标记添加到尚未添加到地图叠加层的叠加层。尝试切换语句的顺序如下:

gmap.Overlays.Add(markersOverlay);
markersOverlay.Markers.Add(marker);

在 lat,lon = 0,0 添加第一个标记。 您还可以通过将其标记图像设置为 1x1 像素透明 png 图像来使该标记不可见。 标记的第一个元素做这种错误的放置。