我有一个带有 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++;
}
因此,当我按下按钮时,我得到的是这个(请记住它在巴拿马设置的地图位置和加拿大的标记):
当我缩小时,标记会在加拿大的正确位置。
为什么我的标记最初是在巴拿马绘制的?
PD :我已经检查过此question,但它无法解决我的问题,因为我需要添加多个标记,myMap.UpdateMarkerLocalPosition(marker)
不是解决方案我。
答案 0 :(得分:6)
这是因为您要将标记添加到尚未添加到地图叠加层的叠加层中。尝试按如下方式切换语句的顺序:
gmap.Overlays.Add(markersOverlay);
markersOverlay.Markers.Add(marker);
答案 1 :(得分:1)
在lat处添加第一个标记,lon = 0,0。 你也可以通过将其标记图像设置为1x1像素透明png图像使该标记不可见。 标记的第一个元素做了这种错误的放置。