0

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

在此处输入图像描述

现在,当我的程序添加一个标记时,它会从FromLocalToLatLnggmap 方法转换 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);
    }

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

4

2 回答 2

0

你需要用这个

map.Zoom = 10;

地图.缩放 = 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;
    }
于 2016-08-16T23:28:09.100 回答
0

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

var center = gmap.Position;

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

var marker2 = new GMarkerGoogle(new
           PointLatLng(center.Lat, center.Lng),
           GMarkerGoogleType.green_pushpin)
       {
           ToolTipText = "Kevin Jennings",
           ToolTipMode = MarkerTooltipMode.OnMouseOver
       };
于 2016-01-13T01:41:26.760 回答