我使用 winforms 和 GMap.NET 来学习如何使用它。
我在 Gmap 控制器上有一个鼠标点击动作,当用户点击地图上的某个地方时,我得到 xy 坐标,将它们转换为纬度和经度,然后在地图上绘制标记。但是标记并没有放置在真正的鼠标光标位置,看起来标记有一个默认位置,就是这样。我试图将鼠标移动到另一个地方,当我单击时,标记也被创建在错误的位置(它与第一个标记相同)
在获取坐标并放置标记之前,我尝试使用 gmap.Overlays.clear() 但这没有帮助。
private void gmap_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
double lat = gmap.FromLocalToLatLng(e.X, e.Y).Lat;
double lng = gmap.FromLocalToLatLng(e.X, e.Y).Lng;
GMapOverlay markerOverlay = new GMapOverlay("markers");
GMarkerGoogle marker = new GMarkerGoogle(new
GMap.NET.PointLatLng(lat, lng),
GMarkerGoogleType.green_pushpin);
markerOverlay.Markers.Add(marker);
gmap.Overlays.Add(markerOverlay);
}
}