2016-01-13 98 views
0

我在摆弄GMap.NET。我的表单上有一个gmap.net地图控件。地图中间有一个红色的x(或者加号)。我添加了一个方法,无论我在地图上点击哪个地方,都会放置一个标记。然而,客户宁愿在用户点击的窗体上有一个“图钉”按钮,标记将被添加到红色X所在的位置(它总是地图控制的中心,看起来)。地图是可拖拽和缩放的,因此标记将被添加到当时红色x的位置。在gmap中心添加地图标记?

enter image description here

现在,当我的程序增加了一个标记,将其转换从FromLocalToLatLng GMAP方法的纬度和经度:

private void gmap_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (e.Button != MouseButtons.Left) return; 

     var lat = gmap.FromLocalToLatLng(e.X, e.Y).Lat; 
     var lng = gmap.FromLocalToLatLng(e.X, e.Y).Lng; 

     var markerOverlay = new GMapOverlay("markers"); 

     var marker = new GMarkerGoogle(new 
      PointLatLng(lat, lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Kevin Jennings", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 

     gmap.Overlays.Add(markerOverlay); 
     markerOverlay.Markers.Add(marker); 
    } 

在这种情况下,虽然,我不知道是否有一种在地图中心添加标记的方法?

回答

0

我想通了。您可以通过使用下面的代码获取地图的中心:

var center = gmap.Position; 

有一次,我的心,所有我需要做的是在该位置添加标记,就像这样:

var marker2 = new GMarkerGoogle(new 
      PointLatLng(center.Lat, center.Lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Kevin Jennings", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 
0

你需要使用这个

map.Zoom = 10;

map.Zoom = 9;

,你的标记会在正确的方向定位.. 完整代码

 var lat = mapa.FromLocalToLatLng(e.X, e.Y).Lat; 
     var lng = mapa.FromLocalToLatLng(e.X, e.Y).Lng; 
     MessageBox.Show(lat + " long :" + lng); 
     var markerOverlay = new GMapOverlay("markers"); 

     var marker = new GMarkerGoogle(new 
      PointLatLng(lat, lng), 
      GMarkerGoogleType.green_pushpin) 
     { 
      ToolTipText = "Ubicacion depto", 
      ToolTipMode = MarkerTooltipMode.OnMouseOver 
     }; 


     markerOverlay.Markers.Add(marker); 
     map.Overlays.Add(markerOverlay); 
     map.Zoom = 10; 
     map.Zoom = 9; 
    }