2016-01-13 130 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; 
    }