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

我有一个带有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++; } 

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

没有缩放的第一张照片。资料来源:OC

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

没有缩放的第二张图片。资料来源:OC

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

PD :我已经检查了这个问题,但它没有解决我的问题,因为我需要添加多个标记,而myMap.UpdateMarkerLocalPosition(marker)对我来说不是解决方案。

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

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

在lat处添加第一个标记,lon = 0,0。 你也可以通过将其标记图像设置为1×1像素透明png图像使该标记不可见。 标记的第一个元素执行此类错误放置。