在 gmap 中心添加地图标记?

Add map marker at gmap center?

我正在摆弄 GMap.NET。我的表单上有一个 gmap.net 地图控件。地图中间有一个红色的 x(或者加号,如果你愿意的话)。我添加了一种方法,可以在我点击地图的任何地方放置一个标记。然而,客户宁愿在表单上有一个用户将单击的 "pushpin" 按钮,并且标记将添加到红色 X 所在的位置(看起来总是地图控件的中心)。地图是可拖动和可缩放的,因此标记将添加到当时红色 x 所在的位置。

现在,当我的程序添加标记时,它会从 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);
    }

不过,在这种情况下,我想知道是否有办法在地图中心添加标记?

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

var center = gmap.Position;

一旦我有了中心,我需要做的就是在那个位置添加一个标记,就像这样:

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

你需要用到这个

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