在gmap中心添加地图标记?

时间:2016-01-13 01:06:56

标签: c# winforms gmap.net

我正在摆弄GMap.NET。我的表单上有一个gmap.net地图控件。在地图中间有一个红色的x(或加号,如果你愿意的话)。我添加了一个方法,只要我点击地图就会放置标记。但是,客户宁愿拥有一个"图钉"用户将单击的窗体上的按钮,标记将添加到红色X所在的位置(它似乎始终是地图控件的中心)。地图是可拖动和可缩放的,因此标记将添加到当时红色x所在的任何位置。

enter image description here

现在,当我的程序添加标记时,它会从FromLocalToLatLng gmap方法转换lat和lng:

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);
    }

在这种情况下,我想知道是否可以在地图中心添加标记?

2 个答案:

答案 0 :(得分:0)

我明白了。您可以使用以下代码获取地图的中心:

var center = gmap.Position;

有了中心后,我需要做的就是在那个位置添加一个标记,如下所示:

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

答案 1 :(得分: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;
    }